Witam, ³aczê sobie 2 procesorki (atmega 16 jako master i atmega8 slave) na I2C. master ma dobrze zdefiniowane funkcje (dogaduje siê z DS1307) . próbujê uruchomiæ tego slave, wpisa³em taki fragment kodu TWAR = 0b00011000; (0x18) TWBR = 0b00000000; TWCR = 0b01000101;
i gdy w masterze wykonam tak± kombinacjê:
twi_start(); twi_wr(0x18); twi_stop(); to uk³ad odpowiada ack, ale w tym momencie transmisja siê psuje, i master przestaje sie dogadywaæ z ds1307. rozumiem ¿e slave trzyma³ bedize to ack w nieskonczonosæ.. czyli muszê w tym momencie ustawic odpowiedni rejestr (TWEA w TWCR?) i wtedy master bedzie mog³ wysy³aæ nastepne dane? tylko jak to zrobiæ - przerwaniem? w³asnie ,jak w winavr nazywa siê to przerwanie? (wiem tylko ze int0 to jest SIGNAL(SIG_INTERRUPT0) { kod... } ) a jak± sk³adnie na TWI ? i co, wtedy mam wziasc przychodz±ce dane z TWDR, po czym ustawiæ TWEA? dobrze to rozumiem?