Hi Chris, vielen Dank für den Fehlerhinweis.
Das Problem ist eigentlich leicht gelöst. Man muss nur die Rekursion von Signal[SIG_ADC] unterbrechen. Deklariere erstens eine globale Variable z.B autoencode=TRUE, dann führe 2. die Signal Funktion ( SIG_ADC)
bedingt aus if
(autoencode=TRUE)
{
hier der Code von SIG_ADC
}
und drittens setzte die Variable vor und nach PollSwitch(). Z.B. so:
int Lese_Tasten (void)
{ int wert;
autoencode=FALSE;
wert=PollSwitch();
autoencode=TRUE;
return wert;}
Ich hab das ausprobiert, und es klappt fehlerfrei. Ich will diese Korrektur, sowie die anderen Funktionen in die asuro.c mit einbauen, weil ich noch andere Verbesserungen an vorhandenen Funktionen gemacht hab.
Ich bin gerade dabei alles zu testen. Neu dabei ist das Lesen der Systemzeit in ms und die Signalfunktion eines Tastendrucks ohne das Gedöhns von oben.
Gruß Weja