Fabian E.
02.02.2010, 00:09
Hallo,
ich habe seit kurzen einen sporadischen Fehler mit dem Mikrofon auf der M32-Platine. Ich frage ich meinem Programm in Abständen von etwa 400ms den Mikrofonwert mit getMicrophonePeak() ab. Einmal vor Programmstart wird dischargePeakDetector() aufgerufen.
Nun kommt es aber vor, dass die Auslesemethode irgendwie nicht mehr funktioniert... Fragt mich nicht warum, aber alles was danach kommt wird quasi nicht mehr ausgeführt... Näheres dazu unten im Code:
void printSensors(void)
{
StartFrame();
writeString_P("SpeedL:");
writeInteger(mleft_speed, DEC);
writeString_P("\n");
writeString_P("SpeedR:");
writeInteger(mright_speed, DEC);
writeString_P("\n");
writeString_P("PowerL:");
writeInteger(adcMotorCurrentLeft, DEC);
writeString_P("\n");
writeString_P("PowerR:");
writeInteger(adcMotorCurrentRight, DEC);
writeString_P("\n");
writeString_P("Bat:");
writeInteger(adcBat, DEC);
writeString_P("\n");
writeString_P("LightL:");
writeInteger(adcLSL, DEC);
writeString_P("\n");
writeString_P("LightR:");
writeInteger(adcLSR, DEC);
writeString_P("\n");
//writeString_P("Mic:");
//writeInteger(getMicrophonePeak(),DEC);
//writeString_P("\n");
EndFrame();
}
Wenn ich den Code für das Mikrofon nun ausklammere, dann wird irgendwann alles hinter dem writeString("Mic:"); nicht mehr ausgeführt.
Ich bekomme in der Console in meinem festgelegten Zeitabständen immer die Ausgabe vom Anfang bis zu "Mic:" dann geht es wieder mit dem Anfangsbefehl(StartFrame()) los...
Hat jemand eine Idee was das sein könnte? Dieses Verhalten ist mir früher noch nie aufgefallen und diesen Teil des Codes benutze ich schon länger...
Fabi
ich habe seit kurzen einen sporadischen Fehler mit dem Mikrofon auf der M32-Platine. Ich frage ich meinem Programm in Abständen von etwa 400ms den Mikrofonwert mit getMicrophonePeak() ab. Einmal vor Programmstart wird dischargePeakDetector() aufgerufen.
Nun kommt es aber vor, dass die Auslesemethode irgendwie nicht mehr funktioniert... Fragt mich nicht warum, aber alles was danach kommt wird quasi nicht mehr ausgeführt... Näheres dazu unten im Code:
void printSensors(void)
{
StartFrame();
writeString_P("SpeedL:");
writeInteger(mleft_speed, DEC);
writeString_P("\n");
writeString_P("SpeedR:");
writeInteger(mright_speed, DEC);
writeString_P("\n");
writeString_P("PowerL:");
writeInteger(adcMotorCurrentLeft, DEC);
writeString_P("\n");
writeString_P("PowerR:");
writeInteger(adcMotorCurrentRight, DEC);
writeString_P("\n");
writeString_P("Bat:");
writeInteger(adcBat, DEC);
writeString_P("\n");
writeString_P("LightL:");
writeInteger(adcLSL, DEC);
writeString_P("\n");
writeString_P("LightR:");
writeInteger(adcLSR, DEC);
writeString_P("\n");
//writeString_P("Mic:");
//writeInteger(getMicrophonePeak(),DEC);
//writeString_P("\n");
EndFrame();
}
Wenn ich den Code für das Mikrofon nun ausklammere, dann wird irgendwann alles hinter dem writeString("Mic:"); nicht mehr ausgeführt.
Ich bekomme in der Console in meinem festgelegten Zeitabständen immer die Ausgabe vom Anfang bis zu "Mic:" dann geht es wieder mit dem Anfangsbefehl(StartFrame()) los...
Hat jemand eine Idee was das sein könnte? Dieses Verhalten ist mir früher noch nie aufgefallen und diesen Teil des Codes benutze ich schon länger...
Fabi