ja so lüppt das ! versteh den void krams nicht ... sonst alles ok !
int main(void)
{
void Msleep(unsigned int dauer) // dauer in millisekunden
{
if(dauer) while(dauer--) Sleep(72); // Sleep(72) dauert 1 ms
}
ja so lüppt das ! versteh den void krams nicht ... sonst alles ok !
int main(void)
{
void Msleep(unsigned int dauer) // dauer in millisekunden
{
if(dauer) while(dauer--) Sleep(72); // Sleep(72) dauert 1 ms
}
Das wird schon.
"void" ist nur ein Platzhalter für "nichts". Die Funktion main() benötigt keinen Parameter (nichts zwischen den Klammern) und liefert einen "int"-Wert an die aufrufende Funktion zurück. Darum das olbigatorische return(0); am Ende jedes Programms. Da aber bei den Microkontrollern kein übergeordnedes Betriebssystem existiert endet ein return irgendwo im Nirwana des Kontrollerspeichers.
Die neu definierte Funktion Msleep() gibt keinen Wert zurück, deshab das "nichts" vor der Definition. Allerdings benötigt sie einen vorzeichenlosen 16-Bit-Parameter "unsigned int" und auf den wird innerhalb der Funktion mit Namen "dauer" zugegriffen.
http://www.mikrocontroller.net/articles/C
http://www.mikrocontroller.net/artic...R-GCC-Tutorial
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!
Alles klar danke !!! lesen bildet uebrigenshabs auch mal probiert und bin echt was weiter gekommen ^^
hier mal mein erstes Programm
und danke nochmal fuer deine geduld ! danke danke#include "asuro.h"
int main(void)
{
Init();
int zahler;
while(1)
{
if (PollSwitch()==0)
{
MotorDir(FWD,FWD);
MotorSpeed(200,200);
StatusLED(YELLOW);
FrontLED(ON);
BackLED(OFF,OFF);
SerWrite(" ALLES SUPER!",20);
}
else
for (zahler=0;zahler<15;zahler++)
{ MotorDir(RWD,RWD);
MotorSpeed(100,200);
StatusLED(RED);
FrontLED(OFF);
BackLED(ON,ON);
SerWrite(" AUA!",11);
}
}
return (0);
}
Hallo
Der zweite Parameter von SerWrite() gibt die Anzahl der Zeichen in der Zeichenkette zwischen " und " an. \n ist ein Steuerzeichen und startet im Terminal die Ausgabe einer neuen Zeile (Newline). Mit Code-Tags bleibt die Struktur des Quellcodes erhalten:
Weiterhin viel Spass mit deinem asuro.Code:#include "asuro.h" int main(void) { int zahler; Init(); while(1) { if (PollSwitch()==0) { MotorDir(FWD,FWD); MotorSpeed(200,200); StatusLED(YELLOW); FrontLED(ON); BackLED(OFF,OFF); SerWrite(" ALLES SUPER!",13); } else { MotorDir(RWD,RWD); MotorSpeed(100,200); StatusLED(RED); FrontLED(OFF); BackLED(ON,ON); for (zahler=0;zahler<15;zahler++) SerWrite(" AUA!",5); SerWrite("\n",1); } } return (0); }
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!
asoja hatte das nicht richtig kopiert ! hatte 20 genommen, weil ich davor noch leerzeichen hatte damit das nicht direkt hintereinander kommt ! aber deine loesung ist natuerlich besser und das was ich gesucht habe
![]()
("\n",1) = einmal enter gedrueckt ?
Lesezeichen