Zitat von
Kampi
Naja wenn der Selbsttest den Fototransistor abfragt und dieser kaputt ist (oder die Diode kaputt ist) und er deswegen nicht durchschalten kann, kann das Programm nicht weiter durchlaufen.
Doch, weiterlaufen wird es. Schau mal die SelbTest Code an:
Code:
SelfTest.c:
... // line 46
SerWrite("Odometrie Test\n\r",16);
FrontLED(ON);
for (i = 0; i < 0xFFF0; i++)
OdometrieTest();
StatusLED(OFF); FrontLED(OFF);
...
Code:
Test.c:
...
// line 104
/* ---------- Odometrie Sensor Test ------------- */
/* Left Sensor -> Status LED GREEN ON when Light on
Left Phototransistor bright enough */
/* Right Sensor -> Status LED RED ON when Light on
Right Phototransistor bright enough */
void OdometrieTest(void)
{
unsigned int data[2];
OdometrieData(data);
StatusLED(OFF);
if (data[0] < 512)
StatusLED(GREEN);
if (data[1] < 512)
StatusLED(RED);
}
/* END Odometrie Sensor Test ------------------- */
Es misst einfach nur die Spannungswerten 65520 mal und lasst den StatusLED leuchten. Aufhängen kann das Programm nur wann irgendwie ein Reset-situation detektiert wird. (Spannungseinbruch tiefer als Reset-pin Bedingung, und vielleicht blockiert den Bootloader wegen schwache Akku-spannung) Sonnst wird das Programm in einiger Sekunden weiter gehen mit den Motor Test.
Lesezeichen