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;
}
Lesezeichen