PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro C / Msleep geht nicht



FredWeise
06.02.2009, 14:20
Hallo
Ich bin dabei ein Prog zu schreiben wo die Front LED blinkt aber leider kommt dabei eine Fehlermeldung

#include "asuro.h"

int main(void)
{
Init();
while(1)
{
FrontLED(ON);
Msleep ( 2000 ) ;
FrontLED(OFF);
Msleep ( 2000 ) ;
}
return 0;
}



Was ist da falsch
Ich habe einen Win Vista und programmiere mit Programmers Notepad 2

MFG FredWeise

hai1991
06.02.2009, 16:03
hallo

kannst du die fehlermeldung mal posten, dann kann man vl mehr sagen

FredWeise
06.02.2009, 16:18
So sieht sie aus

radbruch
06.02.2009, 16:33
Hallo

Die orginale Library von der CD kennt die Funktion nicht, du kannst sie aber einfach in dein Programm reinkopieren:

void Msleep(int dauer)
{
int z;
for(z=0;z<dauer;z++) Sleep(72);
}

void PrintInt(int wert)
{ char text[6]=" ";
itoa(wert,text,10);
SerWrite(text,5);
}
(Aus der erweiterten asuro-Library)

In der orginalen Lib laüft der Timer mit 72kHz, deshalb dauert dann Sleep(72) eine Millisekunde. Bei den neueren Libs mit 36kHz-Timer steht hier Sleep(36).

Mit PrintInt() kann man Zahlen direkt zum Terminal schicken:

int a=12345;
PrintInt(a);
SerWrite("\n\r",2);

Gruß

mic

FredWeise
06.02.2009, 16:37
Danke und wo kopiere ich das nun genau rein

MFG FREDWEISE

hai1991
06.02.2009, 16:38
hallo

wenn ich mich nicht irre benutzt du die originallib. von der CD und da gibt es kein Msleep
in diesem fall kannst du nur Sleep verwenden.
Msleep gibt es erst in der von diesem forum weiterentwickelten lib

radbruch
06.02.2009, 16:42
Alle "selbstgeschriebenen" Funktionen kann man zwischen #include und vor main() einfügen:

#include "asuro.h"

void Msleep(int dauer)
{
int z;
for(z=0;z<dauer;z++) Sleep(72);
}

int main(void)
{
Init();
while(1)
{
FrontLED(ON);
Msleep ( 2000 ) ;
FrontLED(OFF);
Msleep ( 2000 ) ;
}
return 0;
}

Andun
06.02.2009, 16:48
http://sourceforge.net/projects/asuro

Da findest du übrigens die neuste Lib

radbruch
06.02.2009, 16:54
Da findest du übrigens die neuste Lib
... die du aber nur installieren solltest wenn du die erweiterten Funktionen auch wirklich brauchst. Den asuro kann man meiner Meinung nach aber mit der orginalen Lib einfacher erkunden.

Natürlich ist die aktuelle Version gut und wichtig, aber wer mal selbst versucht die Odometrie auszuwerten oder die Motoren zu regeln lernt auch, wie das funktioniert.

malediction
06.02.2009, 17:29
da ist was wahres dran, radbruch.

nur ist für manche der asuro eher ein "spielzeug" und kein lernobjekt. daher ist er (wenn die lib erst mal installiert ist) sehr viel einfacher zu programmieren...

auch wenn da leider der lernfaktor ein wenig drunter leidet.
ich bin aber auch der meinung, dass man sich, wenn man c wirklich lernen will, ein buch kaufen (oder ausleihen) sollte und dann hiermit (und mit asuro) sieht, was man für möglichkeiten hat.

bei der hardwarenahen programmierung des asuro kann es jedoch (gerade für anfänger) schwierig werden, zu verstehen, welches teil wofür sorgt und wie man das mit der dem programm ansprechen und beeinflussen kann.

FredWeise
06.02.2009, 17:35
Vielen Dank für eure sehr hilfreichen Tipps
Gibt es eine Seite oder Datei wo ich nachlesen kann wie ich die neuen funktionen instalieren kann.

MFG FREDWEISE

radbruch
06.02.2009, 17:40
Infos zur aktuellen Lib findet man hier:

https://www.roboternetz.de/phpBB2/viewtopic.php?p=275614#275614

Ähm, aktuell ist doch 2.8, oder? *kopfkratz* Im Zip ist wohl auch eine Anleitung und ein selbstentpackendes Setup enthalten. Bei Vista habe ich irgendwelche Probleme im Hinterkopf, kann mich aber auch irren. Viel Spaß

malediction
06.02.2009, 17:45
welche neuen funktionen meinst du?
oder willst du gar die neueste lib installieren? (achtung: hier genau lesen, sont kann es sein dass es nicht funktioniert...) dazu findest du hier (https://www.roboternetz.de/phpBB2/viewtopic.php?t=33149) eine gute anleitung.

und ja die v2.80rc1 ist die aktuellste (jedenfalls war sie das noch anfang-mitte januar ;)

FredWeise
06.02.2009, 17:57
Danke

für die vielen Links
aber der Link https://www.roboternetz.de/phpBB2/viewtopic.php?t=33149
Ist zwar sehr ausführlich beschreiben aber eigendlich möchte ich nur wissen wie ich das mache und nicht wie es funktioniert . Ich brauch also eine kurze anleitung die mir sagt welche dateien ich wo hin kopiere

MFG FredWeise