Hallo,
Code:int main (void) { void initSRF02(void){ } void stopSRF02(void){ } void task_SRF02(void) { } ... }
Das ist schonmal gefährlich.
Auch wenn C solche Spielereien erlaubt wie Funktionen in Funktionen zu deklarieren,
sollte man sowas nicht tun.
Es gibt einen Handler dafür (void I2C_transmissionError(uint8_t errorState))allerdings fängt die RP6Lib dieses auch nicht ab
wo man darauf reagieren kann wenn man mag.
Wenn so ein Fehler auftritt, dann stimmt meist sowieso was überhaupt nicht mit dem Programm
z.B. sowas:
mir fällt auf das du z.B. I2CTWI_initMaster nicht aufrufst.![]()
Da viele Ressourcen in aufwändige Fehlerbehandlung zu investieren ist nicht sonderlich sinnvoll.
Man könnte ggf. alle weiteren Übertragungen beim ersten Fehler anhalten... dazu einfach
ein while(true); in den error Handler setzen
MfG,
SlyD







Zitieren


Lesezeichen