Запуск:
TWCR = (1 << TWEN)|(1 << TWIE)|(1<<TWSTA)|(1<<TWINT); //Start
Начальный кусок обработчика:
#pragma vector = TWI_vect
__interrupt void TWI_interrupt(void)
{
status = TWSR & 0xF8; //Запоминаем для внешнего анализа
switch(status)
{
case 0x08:
case 0x10:
if(twi.op_state == OP_WRITE)
TWDR = 0xa0;
else
TWDR = 0xa1;
TWCR = (1 << TWEN)|(1 << TWIE)|(1 << TWINT);
}
break;
До дальнейшего просто не доходит TWSR=0x20, error.
?