Revision 3a25bcb9
Added missing while loop in tiny-twi
scout_avr/bom/tiny-twi-sync.c | ||
---|---|---|
167 | 167 |
} |
168 | 168 |
|
169 | 169 |
void twi_run(void) { |
170 |
if (USISR & _BV(USISIF)) { |
|
171 |
twi_start(); |
|
172 |
USISR |= _BV(USISIF); |
|
170 |
while (1) { |
|
171 |
if (USISR & _BV(USISIF)) { |
|
172 |
twi_start(); |
|
173 |
USISR |= _BV(USISIF); |
|
174 |
} |
|
175 |
if (USISR & _BV(USIOIF)) { |
|
176 |
twi_on_overflow(); |
|
177 |
USISR |= _BV(USIOIF); |
|
178 |
} |
|
179 |
if (USISR & _BV(USIPF)) { |
|
180 |
twi_on_stop(); |
|
181 |
USISR |= _BV(USIPF); |
|
182 |
} |
|
173 | 183 |
} |
174 |
if (USISR & _BV(USIOIF)) { |
|
175 |
twi_on_overflow(); |
|
176 |
USISR |= _BV(USIOIF); |
|
177 |
} |
|
178 |
if (USISR & _BV(USIPF)) { |
|
179 |
twi_on_stop(); |
|
180 |
USISR |= _BV(USIPF); |
|
181 |
} |
|
182 |
} |
|
184 |
} |
Also available in: Unified diff