PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO 1. Programm klappt nicht



Nobbi
21.01.2006, 10:13
Hallo ASURO-Fans,
ich habe das erste eigene Programm nach Anleitung (Kap. 8.5) geschrieben und erfolgreich geflasht. Aber ASURO reagiert sehr eigenwillig. Statt rot leuchtet die Status-LED grün und der linke Motor lässt ASURO im Kreis fahren!
Was habe ich falsch gemacht, was muss ich ändern?

MSSputnik
21.01.2006, 11:26
Hallo,

wenn du dein Programm posest geht es evtl einfacher herauszufinden was los ist.

Möglichkeit A) Schriebfehler oder Denkfehler im Programm

Möglichkeit B) Fehler am ASURO Selbst.

Martin

Lunarman
21.01.2006, 18:10
Also, da die LED grün leuchtet, wird wohl der ASURO hinüber sein, oder du hast den MC falsch eingesteckt. Ich halte nicht viel vom ASURO, da er nur auf billig ausgelegt ist. Bei mir funktionieren die Taster gar nicht mehr.

Nobbi
22.01.2006, 09:43
Hallo MSSputnik,

besten Dank für die Hinweise. Beim Testlauf funktionieren alle Funktionen bis auf die Taster. Deshalb glaube ich, dass der Asuro ok ist, ich aber irgendwelche Parameter verändern muss. Fragt sich nur, wie und welche?

Andun
22.01.2006, 12:10
Ja, und diese frage nach welchen, können wir leider nicht erraten. Poste dohc mal bitte dein Programm, da wir ja nicht raten können, was du geschrieben hast.

Andun

Nobbi
22.01.2006, 18:52
Hallo,
steht in Kapitel 8.5 der Anweisung und lautet:

#include "asuro.h"
int main(void) {
Init();
StatusLED(RED);
while(1);
return 0;
}

Ich habe dafür das vorgegebene test-Programm aus FirstTry verwendet und entsprechend geändert (alles nach Anweisung).


Noch ein Hinweis zur Funktion der Taster beim SelfTest: Es leuchten zwar die richtigen LEDs auf, aber bei einigen läuft gleichzeitig ein Motor. In der Beschreibung steht, dass man das softwaremäßig beheben kann. Wie?

m.a.r.v.i.n
23.01.2006, 08:45
Hallo Nobbi,

Eventuell hast du beim Zusammenlöten 2 Pins am IC1 gebrückt. Nochmal kontrollieren.

Beim Selbsttest kann es vorkommen das beim Drücken von K1 oder K2 auch K6 erkannt wird, und der linke Motor mitläuft.
Wie dass softwaremäßig behoben werden kann, findest du hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=82999)

Gruß Peter

Nobbi
23.01.2006, 17:09
Hallo Peter,
besten Dank für deine Tipps. Nochmal die Ausgangslage: Beim Selbsttest ist alles ok bis auf die Taster K1 und K2. Bei Betätigen von K1 leuchtet die StatusLED grün (wie vorgesehen) und zusätzlich die rechte Back-LED. Bei K2 leuchtet die StatusLED rot (wie vorgesehen) und der linke Motor.

Der obere Link besagt, dass man folgende Programmzeile ändern soll:
"return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));"

Ich bin leider Anfänger und nicht sicher, ob ich alle Schritte richtig gemacht habe. Hier meine Vorgehensweise:
Die Programmzeile, die man ändern soll, habe ich in asuro.c gefunden.
Also asuro.c auf notepad geladen, clean betätigt, Wert 63 auf 62 geändert, mit make die hex-Datei erzeugt und gespeichert. Dann selftest.hex zum asuro geflasht. Leider keine Änderung festgestellt.
Gleiches mit 61 und 60 versucht, ebenfalls negativ.
Wahrscheinlich mache ich irgendwas falsch! Was?

m.a.r.v.i.n
23.01.2006, 21:32
Hallo Nobbi,

genaus so gehts.
Der Wert könnte aber auch 64 oder 65 sein. Ist leider bei fast jedem Asuro ein andere Wert.
Hinzu kommt das die Abfrage der Taster im Selbsttest Programm auch nicht 100% funktioniert.
Besser ist folgendes: 2xPollSwitch aufrufen und beide Rückgabewerte vergleichen.
Hier die geänderte Funktion in test.c


void SwitchTest(void)
{
unsigned char sw,sw2,tmp;
MotorDir(FWD,BREAK);

sw = PollSwitch();
sw2 = PollSwitch();
StatusLED(OFF);
FrontLED(OFF);
BackLED(OFF,OFF);
MotorSpeed(0,0);
tmp = 0;

if (sw && sw2 && sw == sw2)
{
if (sw & 0x01)
MotorSpeed(200,0);
if (sw & 0x02)
{
BackLED(OFF,ON);
tmp = 1;
}
if (sw & 0x04)
BackLED(ON,tmp);
if (sw & 0x08)
FrontLED(ON);
if (sw & 0x10)
RED_LED_ON;
if (sw & 0x20)
GREEN_LED_ON;
}
}


Gruß Peter

Lunarman
24.01.2006, 17:14
Wofür steht denn tmp?

Tschüß,
Lunarman

m.a.r.v.i.n
24.01.2006, 18:28
tmp ist nur ein Merkflag für die rechte BackLED. Falls die Tasten K4 und K5 gleichzeitig gedrückt wurden. Sonst würde nur die linke leuchten

Gruß Peter

Nobbi
26.01.2006, 06:29
Hallo Peter,
besten Dank für die Tipps, hab im Moment wenig Zeit.
Ich melde mich wieder

Gruß Nobbi