-
#include "asuro.h"
int main(void)
{
Init();
int i;
for(i=0;i<10;++i)
{
/* Asuro vorwärts fahren lassen */
MotorDir(FWD,FWD); /* Beide Motoren Drehrichtung vorwärts */
MotorSpeed(255,255); /* Beide Motoren Geschwindigkeit maximal */
/* Asuro rückwärts fahren lassen */
MotorDir(RWD,RWD); /* Beide Motoren Drehrichtung rückwärts */
MotorSpeed(255,255); /* Beide Motoren Geschwindigkeit maximal */
/* Asuro auf der Stelle rechts drehen lassen */
MotorDir(FWD,RWD); /* Motoren Drehrichtung links vorwärts, rechts rückwärts */
MotorSpeed(255,255); /* Beide Motoren Geschwindigkeit maximal */
/* Asuro eine Rechtskurve fahren lassen */
MotorDir(FWD,FWD); /* Beide Motoren Drehrichtung vorwärts */
MotorSpeed(255,0); /* Motoren Geschwindigkeit links maximal, rechts stop */
/* Asuro eine Linkskurve fahren lassen */
MotorDir(FWD,FWD); /* Beide Motoren Drehrichtung vorwärts */
MotorSpeed(0, 255); /* Motoren Geschwindigkeit links stop, rechts maximal */
/* Asuro schnell abbremsen lassen */
MotorDir(BREAK,BREAK); /* Beide Motoren bremsen */
MotorSpeed(0, 0); /* Beide Motoren stop */
}
while(1);
return 0;
}
kann ich zwar ohne errors maken, aber das flashen funzelt ned
-
Sending Page 004 of 025 --> flashed !
Sending Page 005 of 025 --> cctcccccct
TIMEOUT !
ASURO dead --> FLASH damaged !!
-
habs jetzt paar mal probiert und schließlich hatts doch geklappt
aber der asuro rührt sicht nicht, sondern leuchtet nur gelb (statusLED)
-
einfach nur irgendwelche meldungen posten hilft nicht.
vernn diese meldung kommt, hat das flashen nicht geklappt - weiter probieren, evtl mal das licht ausmachen, rollos runter, vor allem leuchtstoffröhren, energiesparlampen und helle bildschirme stören beim flashen.
die ganzen befehle stehen in der anleitung... vielleicht solltest du da mal nachsehen?
-
zum programmieren mit neuerne lib-versione mit neuem progammersnotpad:
1. man braucht kein make und clear einstellen, sondern kann die "voreingestellten" benutzen
2. muss man zb einen ordner aus den exampels kopieren, gegebenenfallst umändern, und dann das darin befindliche programm umändern und neu übersetzen (natürlich zu erst speichern)
ich hoffe das hilft dir weiter
-
naja also alle befehle stehen ned drinn, da steht zum beispiel:
"9.2.5. void Sleep(unsigned char time72kHz)
Diese Funktion lässt den Prozessor für eine einstellbare Zeit warten. Damit kann man prima
Verzögerungen programmieren. Diese Funktion basiert auf einem 72kHz-Timer und kann als
Parameter maximal den Wert 255 übergeben bekommen (unsigned char)4.
Beispiel: 0,003s
Der Prozessor soll für ca. 3ms warten ==> 1 = 216. Die Funktion Sleep () wird für 3ms
langes Warten wie folgt aufgerufen: 72KHz
Sleep (216) ;"
was mach ich aber wenn ich 10 sekunden haben will? (ich darf ja nur zahlen bis 255 nehmen)
hab was von void Msleep (int 10000); gehört, aber das nimmt er auch ned an.
@hai wenn ich ne beispieldatei von ner lib nehme kann ich die auch ned maken, der hat ja die neuen funktionen, die darin enthalten sind noch ned im notepad drinn.
-
Hallo asuroanfang,
du kommst gerade damit durcheinander, dass du die Beschreibung der CD-Version und der LIB-Version 'würfelst'.
Bei der LIB-Version gibt es eine HTML-Hilfe zu der Lib.
Du hast unter deinem LIB-Installationsverzeichnis (i.d.R. C:\ASURO_SRC) das Verzeichnis AsuroLib\doc\html. Dort die Datei index.html doppeltklicken, und schon kommt die LIB-Hilfe.
Dort wird auch beschrieben, was du zur Installation und auch NUTZUNG der LIB machen musst.
Ich komme auf diesen Hinweis, da sich gerade in der Sleep()-Funktion der Parameter time72khz auf time36khz geändert hat. Und das gibt es nur in der LIB.
Auf alle Fälle weiterhin viel Spaß und auch Erfolg mit dem schnuckeligen Asuro wünscht dir
Sternthaler
P.S.: Die Status-LED ist immer gelb, nachdem der Asuro eingeschaltet wurde und betriebsbereit ist.
In deinem Programm hast du die LED-Farbe nicht geändert. Sie bleibt also gelb.
Warum der Asuro nichts tut?
Die CPU ist so schnell, dass deine 10-er-Schleife schon fertig ist bevor du auch nur einmal blinzeln kannst ;-)
Ich nehme mal an, dass du deshalb auch schon die Sleep()-Funktion bemühen möchtest.
Auch NUR in der LIB gibt es tatsächlich die Funktion Msleep(). Da werden die Zeiten schon in ms angegeben und der Parameter ist ein int, geht also bis 32767 ms.
-
ich bilde mir ein dass die statusled rot oder grün ist, aber gerade nicht gelb.....
wenn du mehr als 255 einheiten (etwa 3,1 Millisekunden) warten willst, dann musst du Sleep mehrfach aufrufen - am besten in einer schleife.
In der Anleitung stehen ALLE befehle drin, die du mit der library von der cd nutzen kannst. um funktionen wie msleep zu benutzen, musst du die erweiterte library installieren, welche hier im forum entstanden ist (und nichts mit arexx zu tun hat!).
-
danke für eure hilfe, aber leider weis ich immer noch ned wie installierte erweitere lib benutze, ich will ja Msleep() benutzen...
-
Hallo
Die älteren Libraries (bis ca. 2.6?) bestehen nur aus den Dateien asuro.h und asuro.c. Einfach die entsprechenden CD-Dateien ersetzen und fertig. Ab 2.7 gibts eine automatische Installation der Lib.
Hier kann man die gewünschte Version downloaden:
http://sourceforge.net/project/showf...kage_id=172835
In den Archiven befindet sich auch eine Historie die zeigt, welche Funktionen ab wann verfügbar sind. Ich verwende v2.3.
int i;
for (i=0; i<1000; i++) Sleep(72); // 1000 mal eine Millisekunde
Die StatusLED() ist grün nach dem Init().
Gruß
mic