| Код | ... 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?? |