Sowas löst man mit Funktionen, z.b.:
void pause(unsigned int dauer) {
unsigned int i, j;
for (i=0; i<dauer; i++) for (j=0; j<1000; j++) j=j;
}
Keine Ahnung ob das funzt. Wenn ja, dann ist j der Zähler für die innere Schleife und bestimmt die Verzögerung pro Dauereinheit. j=j; ist ein dummy und sorgt dafür, das der mega8 nicht einschläft.
Das geht mit der lib natürlich auch, aber ohne sollte man es auch können. Anwendung wäre dann:
...
StatusLED(RED);
pause(500);
StatusLED(GREEN);
pause(500);
...
Das Ganze sieht dann z.B. so aus:
Code:#include "asuro.h" void pause(unsigned int dauer) { unsigned int i, j; for (i=0; i<dauer; i++) for (j=0; j<30000; j++) j=j; } int main(void) { do{ Init(); StatusLED(RED); pause(500); StatusLED(GREEN); pause(500); }while (1); return 0; }







Zitieren

Lesezeichen