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