Mam pytanie: czy na zamieszczonym ponizej fragmencie programu zasada generowania sygnalu potwierdzenia ACK jest taka ze po odebraniu wlasnego adresu uklad sleve generuje ACK po napotkaniu polecenia:
"TWCR|=(1<<TWEA)|(1<<TWINT); // potwierdza to wygenerowaniem do mastera syg ACK"
czy mo¿e zasada jest taka ¿e slave odbiera swoj adres automatycznie generuje ACK a dzialanie polecenia: "TWCR|=(1<<TWEA)|(1<<TWINT); // potwierdza to wygenerowaniem do mastera syg ACK" jest takie aby po odebraniu nastepnego bajtu (ktory przychodzi po adresie) wygenerowaæ ACK.
sadze ze jasno sie wyrazilem.
Oto fragment funkcji obslugi przerwan od twi ISR(TWI_vect) { switch (TW_STATUS) // sprawdzam status twi po zgloszeniu przerwania { case TW_BUS_ERROR: // blad na magistrali TWI - nieprawidlowy sygnal stopu/startu { TWCR|=(1<<TWSTO)|(1<<TWINT); // jezeli wystapil blad na mag. twi to ustaw SCL i SDA w HIZ
break; } case TW_SR_SLA_ACK: // slave zostal wywolany przez odbior wlasnego adresu { TWCR|=(1<<TWEA)|(1<<TWINT); // potwierdza to wygenerowaniem do mastera syg ACK break; } ..... . ...... ...
} //end switch
}
__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow 4457 (20090925) __________
Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.