Habe jetzt nochmal zusammengefasst (Weil etwas funktioniert)
Hier mein Code
Code:
#include <stdbool.h>
#include <stdio.h>
#include <asuro.h>
int main(void)
{
Init();
char zC[2];
unsigned char umschaltpunkt;
int t = 0,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;
}
Hier HT ausgabe
Code:
65528 zC
65529 zC
65530 zC
65531 zC
65532 zC
65533 zC
65534 zC
65535 zC //So stimmt es Da ich oben z mit int deklarieert habe
0535 zC
1535 zC
2535 zC
3535 zC
4535 zC
5535 zC
6535 zC
Wenn ich z mit unsigned int deklariere:
Init();
char zC[2];
unsigned char umschaltpunkt;
int t = 0;
unsigned int z = 0;
Code:
10 zC
11 zC
12 zC
13 zC
14 zC
15 zC //Taster gedrückt
30000 zC // fangt er immer wieder bei null an
1000 zC
2000 zC
3000 zC
4000 zC
5000 zC
6000 zC
7000 zC
8000 zC
9000 zC
1000 zC
1100 zC
Wieso?
Lesezeichen