PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Piepen derr Motoren nach einschalten



Illuminat23
03.09.2006, 16:01
Habe bemerkt das wenn ich ein einfaches Programm mit der Go Funktion starte Pipt der Motor und sonst geschieht nix, aber das piepsen klingt nicht sehr gesund hoffe ihr habt ne Idee

greetz Illus23

gandalfsz
03.09.2006, 20:35
Kann daran liegen das die Zahnräder nicht richtig greifen oder das irgendetwas klemmt vieleicht mal schaun ob irgendwas klemmt.


mfg Daniel

Illuminat23
04.09.2006, 05:24
So habe mal alles gereinigt bissl Fett benutzt aber da klemmt nix nicht ma moter nicht am rest des Getriebes aber dabei viel mir auf das ein Simples Progrmam auch nicht so möchte wie es soll....

#include "asuro.h"
int main(void)
{
int go;
go=1;
Init();
while(go==1){
BackLED(ON,OFF);
FrontLED(ON);
Msleep(1);
FrontLED(OFF);
BackLED(OFF,ON);
}
return 0;
}

Das der Code und nach FrontLED(ON); macht er nichts mehr dan ist die eine hintere Lampe an die FrontLED auch aber dan müßte er Msleep(1); machen und das tut er nicht oder hängt sich dabei auf... sehr komisch find ich das habt ihr da noch ne idee?

PS: gibts ne möglchkeit den Speicher auf Werkszustand zu flashen ?

Norki
04.09.2006, 09:14
Hallo!

Also das Piepen ist, wenn du das meinst, was ich meine, normal. Ab einem bestimmten Powerwert drehen die Motoren erst, davor gibts son Piepen. Henk hier aus dem Forum hat auch schon ein Programm geschrieben, mit dem der Asuro mit dem Piepen Musik macht. Also alles in Ordnung.

Dein Programm funktioniert genauso, wie du willst.
Deine while Schleife wird aber immer wieder durchlaufen, also nachdem er am Ende ist, springt er wieder oben zum while. Und da ist der Programmierfehler. Am Ende der while Schleife schaltest du die LEDs aus, bzw. um. Dann springt das Programm nach oben, und schaltet sie wieder sofort ein, daher siehst du z.B. gar nicht, dass die Front LED aus geht.
Außerdem ist eine ms Schlaf auch zu wenig, da kriegst du den Wechsel eh nicht mit.

gruß
Norki

Illuminat23
04.09.2006, 16:04
ok Danke dann mache ich fleißig weiter und nehme gleich sleep oder ne längere schleife ;)

Ich Präsentiere dann das Meisterwerk und/oder die neuen Bugs aber :-$

Shadow²
05.09.2006, 06:56
Sag doch einfach Msleep(1000);, dann wartet er eine Sekunde.

Das musst du einmal am Ende der While-Schleife und dann zwischen dem LED Wechsel einbauen.

Illuminat23
05.09.2006, 16:07
ne Msleep 100 reicht mir aber mei nRobi fährt auch schon seit 2 Tagen wild lechtend durch die Gegend ;)

Shadow²
05.09.2006, 23:08
Achso. Na, dann ist ja gut :)