Hallo miteinander,
ich bin neu hier und hab mit meienm Asuro ein kleines Problemchen un dich weiß nicht an was es liegt, hab schon ziemlich alles versucht aber irgendiwe gehts nich. hab nur das wichtigste aus dem code kopiert, das andere ist alles asukommentiert in meinem Code um jeweils die neu funktion zu testen.
das Problem ist, ich hab keine Ahnung warum der nicht in die untergeordnete while schleife geht, normalerweise müsste er sich ja die ganze zeit im Kreis drehen, tut er aber nicht, ich bin mir auch sicher dass kein Taster gedrückt ist.Code:while(1) { while (PollSwitch==0) { MotorDir(FWD,RWD); //drehen bis Linie gefunden ist. MotorSpeed(120,120); Msleep(2000); } MotorDir(FWD,FWD); MotorSpeed(200,200); } return 0;
Hallo
PollSwitch() "lügt" gelegentlich, vor allem, wenn gleichzeitig die Motoren laufen stimmt der zurückgelieferte Wert nicht immer. Ein Ansatz das zu lösen wäre mehrere Werte mit PollSwitch() ermitteln und diese dann auf Gleichheit zu überprüfen:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=36760
https://www.roboternetz.de/phpBB2/ze...ag.php?t=38949
Wenn es keine Rolle spielt, welche Taste gedrückt wurde, kann man den Tastenpin auch digital abfragen:
if(!(PINC & (1<<PC4))) ...
(aus http://www.arexx.com/forum/%76iewtopic.php?p=1319#p1319)
Wichtig sind natürlich saubere Lötstellen an den Tastern und die richtigen Widerstände (R23-30, 32). Wenn gar nichts mehr hilft kann man die Formel am Ende der Funktion PollSwitch() editieren (in asuro.c) und damit die Tasten kalibrieren:
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen