Hallo

Bei Komplieren deines Programms erhalte ich unter anderem folgende Warnung:

temp.c:13: warning: 'n' might be used uninitialized in this function

Deshalb würde ich in der Funktion zaehler() als Ersatz für int n; folgende Zeile empfehlen:

static int n=0;

Das bewirkt, dass die Funktion die Variable nie mehr vergißt (static) und beim ersten Mal mit 0 vorbelegt wird (=0).

Einfacher geht es z.B. so:
Code:
#include "asuro.h"

int main(void)
{
   unsigned char i=0;

   Init();
   StatusLED(RED);               // Meldung Ende Init() erreicht

   while(1)
   {
		while(PINC & (1<<PC4)); 	// Wird ausgeführt solange keine Taste gedrückt wird

		i++;                       // Zähler erhöhen
		if(i==5) StatusLED(GREEN); // Zählerstand anzeigen
		if(i==10) StatusLED(YELLOW);
		if(i==15) { StatusLED(RED); i=0; } // und rücksetzen

		while(!(PINC & (1<<PC4))); // Wird ausgeführt solange eine Taste gedrückt wird
   }
   return(0);
}
Gruß

mic