Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > [avr] проблемы c TWI


Автор: Олег85 20.4.2010, 15:42
Код

...
init();
   unsigned char kdg=0;
 // char c;
while(1)
{
  while(!(UCSR1A&(1<<RXC1)));
  kdg=UDR1;

TWCR=(1<<TWEN)|(1<<TWSTA)|(1<<TWINT);
if(!(TWSR==0x08)) break;

[color=red]TWDR=(TWAR<<1)|0x00;[/color]
TWCR=(1<<TWEN)|(1<<TWINT);
...


Состояние "старт" на шине формируется, значение регистра состояния 0х08, НО при операции записи в сдвиговый регистр TWDR адресного пакета его значение не меняется (0xFF), в регистре TWCR устанавливается в "1" TWWC (флаг конфликта записи), хотя TWINT==0. Различные манипуляции с регистрами ни к чему не приводят. Помогите :(((((
П.С. ЗА Второй МК еще не брался, может он сбрасывает TWINT?? 

Автор: Олег85 20.4.2010, 16:11
ДА, ДЕЙСТВИТЕЛЬНО 2-ОЙ МК СБРАСЫВАЛ TWINT, ВСЁ РЕШИЛОСЬ ПОСЛЕ ПЕРЕПРОШИВКИ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)