Hallo
Beispiele für Kollisionsprogramme findet man z.B. wenn man in der Suchfunktion des Forums nach "motorspeed AND pollswitch" sucht. Allerdings sollte man sich dabei darüber im Klaren sein, dass der asuro dann immer ungebremst gegen das Hinderniss knallt!
Dein Programm könnte man z.B. so ändern:
Code:
#include "asuro.h"
int main(void)
{
Init();
unsigned char sw1, sw2, sw3;
while(1)
{
sw1 = PollSwitch();
sw2 = PollSwitch();
sw3 = PollSwitch();
if (sw1 == sw2 == sw3 == 0x01)
MotorSpeed(150, 0);
if (sw1 == sw2 == sw3 == 0x02)
MotorSpeed(200, 0);
if (sw1 == sw2 == sw3 == 0x04)
MotorSpeed(250, 0);
if (sw1 == sw2 == sw3 == 0x08)
MotorSpeed(0, 150);
if (sw1 == sw2 == sw3 == 0x10)
MotorSpeed(0, 200);
if (sw1 == sw2 == sw3 == 0x20)
MotorSpeed(0, 250);
}
}
...dann hat die mehrfacheTastenabfrage auch einen Sinn. Ich habe das allerdings so nicht getestet. Vermutlich wird es auch nicht wie erwartet funktionieren weil die wenigsten asuros auf Anhieb die richtigen Werte liefern ("asuro AND tasten AND kalibrieren"). Zusätzliche Hinweise findet man auch im asurowiki. Der Artikel über die Tastenkalibrierung behandelt zwar die Anwendung bei der aktuellen Library, aber der Sachverhalt ist gleich. Die Formel dazu steht in asuro.c am Ende von PollSwitch().
Gruß
mic
Lesezeichen