Atmega TWI (I2C) - timeout error

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

Reply to
Heliogabal
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.