Ganz zufrieden bin ich noch nicht

Hier mein Programm
Code:
#include <stdbool.h>
#include <stdio.h> 
#include <asuro.h>
	int main(void)
{
	Init();
	char zC[2];
	unsigned char umschaltpunkt;
	int t = 0;
	unsigned int z = 0;
/*******************************************************************************************/
while( 1 )
{
	if(Gettime() > umschaltpunkt)       // Umschaltzeitpunkt überschritten?
	{
	umschaltpunkt += 1000;              // neuen Umschaltzeitpunkt festlegen 
	z++;
	}

if (PollSwitch() == 1) 
	z=80;

if (PollSwitch() == 2) 
	z=65500;

if (PollSwitch() == 4) 
	z=32740;

if (PollSwitch() == 16) 
	z=0;

/**********************************************************************/
		//sprintf(zC, "%d", z);		//Übertragen
		utoa (z, zC, 10);
		
		SerWrite(zC, 5);			//Übertragen
		SerWrite ("  zC\n\r", 6);	//Übertragen
	for (t=0; t< 40; t++)			//Übertragen
        {							//Übertragen
        Sleep (72);					//Übertragen
        }							//Übertragen
/***********************************************************************/


	

	if (z > 200)
		z=0;
}
	return 0;
}


/*		sprintf(aC, "%d", LANG);
		SerWrite(aC, 2);
		SerWrite (" aC\n\r", 5); 
		
		
		
		
		utoa (LANG, aC, 10); 	    sprintf(aC, "%d", LANG);	
		SerWrite (aC, 2);				
		
		SerWrite ("=VAR\n\r", 6);   

 
    for (t=0; t< 130; t++)					
        {Sleep (72);}*/
Er zählt irgendwie so eigenartig wenn ich irgend einen Taster drück

Code:
32740  zC
32740  zC
32740  zC                //if (PollSwitch() == 2)  habe ich gedrückt
1740  zC                  // wieso zählt er nicht weiter bis auf 65635?
2740  zC
3740  zC
4740  zC
5740  zC
6740  zC
Lg