Перейти к содержанию

Kovalinski

Members
  • Постов

    3
  • Зарегистрирован

  • Посещение

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    1-2 года

Достижения Kovalinski

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Kovalinski

    TWI на XMEGA

    Добрый день! Прошу помощи в реализации интерфейса TWI на XMEGA. Набросал код для двух микроконтроллеров. Но на выходе SDA и SCL вообще ничего не происходит. Привожу пример для мастера. #define F_CPU 2000000UL #define CPU_SPEED 2000000 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> uint8_t slave_address=6, write=0; uint8_t data=0x01; void TWI_init(void) { TWIC.CTRL=0; TWIC.MASTER.BAUD=0x05; TWIC.MASTER.CTRLA=TWI_MASTER_INTLVL_HI_gc|TWI_MASTER_ENABLE_bm|TWI_MASTER_WIEN_bm; TWIC.MASTER.CTRLB=0; TWIC.MASTER.CTRLC=0; TWIC.MASTER.STATUS=TWI_MASTER_BUSSTATE_IDLE_gc; } void TWI_write_date(uint8_t data) { //TWIC.MASTER.CTRLC=TWI_MASTER_CMD_REPSTART_gc; TWIC.MASTER.ADDR=slave_address|write; while(!(TWIC.MASTER.STATUS&TWI_MASTER_WIF_bm)); TWIC.MASTER.DATA=data; while(!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm)); TWIC.MASTER.DATA=data; while(!(TWIC.MASTER.STATUS & TWI_MASTER_WIF_bm)); TWIC.MASTER.CTRLC=TWI_MASTER_ACKACT_bm|TWI_MASTER_CMD_STOP_gc; TWIC.MASTER.CTRLC=0; } int main(void) { CPU_SREG|=(1<<CPU_I_bp); TWI_init(); while(1) { TWI_write_date(data); } }
×
×
  • Создать...