Atmega TWI (I2C) - timeout error

Oct 22, 2006 0 Replies

Co zrobic, jesli na skutek zaklocenia na I2C, Atmega zglosi utrate kontroli nad magistrala (TWSR=0x38) mimo, ze wcale nie ma innego mastera ? Proba wyslania sekwencji "start" jak ponizej:



TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); while (!(TWCR & (1<<TWINT)));



spowoduje zatrzymanie procesora w petli while. Jak z tego wybrnac ? Wprowadzic jakis timeout i pozniej zresetowac TWI ? Jesli tak to jak taki reset powinien wygladac ?



W przypadku wielu masterow podobny problem takze moze wystapic w sytuacji, jesli master nadajacy nie zdazy zakonczyc transmisji, bo akurat zresetuje go WD.



Heliogabal



Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required