PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motoren beeinflussen Tasten (K1-K6)



ThorstenP
30.12.2007, 10:03
Hallo,
ich bin neu hier und hoffe, dass mir jemand helfen kann.
Ich habe zu Weihnachten einen Asuro geschenkt bekommen. Der Zusammenbau war unkritisch und der Selbsttest hat auf anhieb funktioniert. Beim schreiben eigener Programme habe ich nun festgestellt, dass das Drehen der Motoren den Status der Taster K1-K6 beeinflusst.
Folgendes Programm habe ich als Beispiel verwendet:


MotorDir(FWD, FWD);
MotorSpeed(128, 128);
unsigned char Taste = 0;
while (1)
{
Taste = PollSwitch();
if (Taste > 0)
{
BackLED(ON, ON);
}
else
{
BackLED(OFF, OFF);
}
}

Dabei flackern die hinteren LEDs fast ständig.
Wenn ich die Motoren anhalte (MotorSpeed(0,0)), dann ist alles ok. Die LEDs leuchten nur, wenn auch eine Taste gedrückt wurde.

Da scheinen die Motoren nicht ausreichend entstört zu sein.

Hat jemand ähnliche Erfahreungen gemacht und kann mir einen Tip geben, wie ich das Flackern verhindern kann?

Vielen Dank schon einmal im Voraus,

Thorsten

radbruch
30.12.2007, 10:26
Hallo Thorsten,

willkommen im RN-Forum und Glückwunsch zum asuro.

PollSwitch() "lügt" gelegentlich, deshalb sollte man die Tasten immer mehrfach abfragen:

#include "asuro.h"

unsigned char Taste1, Taste2;

int main(void)
{
Init();
MotorDir(FWD, FWD);
MotorSpeed(128, 128);
Taste2 = PollSwitch();
while (1)
{
Taste1 = PollSwitch();
if (Taste1 && (Taste1 == Taste2))
{
BackLED(ON, ON);
}
else
{
BackLED(OFF, OFF);
}
Taste2 = Taste1;
}
return(0);
}

Gruß

mic

ThorstenP
30.12.2007, 10:36
Hallo,

vielen Dank. Jetzt gehts....
Schon komisch, dass PollSwitch() gelegentlich falsche Werte liefert.

Jetzt kann ich weiter machen. Klasse.

Gruß,
Thorsten

damaltor
30.12.2007, 11:13
noch ein tip: wenn du deinen nächsten eitrag verfasst, dann nutze doch bitte die code-tags um so eine hübsche box um den quellcode zu machen. klick bei deinem beitrag auf edit (oben rechts) dann siehst du was ich meine. ich habe deinen beitrag editiert und die box eingefügt. danke!