meine (damen) und herren, herr tinsen darf einen ersten erfolg verbuchenwenn ich drueck wirds rot ^^
![]()
naja sagen wir teilerfolgund im terminal "es wurde eine taste gedrückt"
meine (damen) und herren, herr tinsen darf einen ersten erfolg verbuchenwenn ich drueck wirds rot ^^
![]()
naja sagen wir teilerfolgund im terminal "es wurde eine taste gedrückt"
#include "asuro.h"
int main()
{
Init();
int i=0;
for (i=0;i<100;++i)
{
BackLED (OFF, ON);
Msleep(200);
BackLED (ON, OFF);
Msleep(200);
}
BackLED (OFF, OFF);
while (1); //ansonsten endlos
return 0; //wird nicht erreicht
}
das probiere ich gerade mal ! msleep kriegt er nur nicht hin ! mach ich nur sleep gehen beide leds an und bleiben an
ich bin kurz vorm verstaendniss![]()
So vielleicht?
(ungetestet)Code:#include "asuro.h" int main(void) { void Msleep(unsigned int dauer) // dauer in millisekunden { if(dauer) while(dauer--) Sleep(72); // Sleep(72) dauert 1 ms } int i=0; Init(); for (i=0;i<100;++i) { BackLED (OFF, ON); Msleep(200); BackLED (ON, OFF); Msleep(200); } BackLED (OFF, OFF); while(1) {StatusLED(RED); Msleep(20); StatusLED(OFF); Msleep(200);} //ansonsten endlos return 0; //wird nicht erreicht }
Spannenderweise kann ich das auch mit meiner v2.3er-Version fehler- und warnungsfrei kompilieren, weil die neue Funktion Msleep() lokal in main() ist? Wieder was gelernt.
Gruß
mic
Geändert von radbruch (20.10.2011 um 14:07 Uhr) Grund: unsigned int ist besser ;)
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
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!
Lesezeichen