my codes:
unsigned int i=0; void Timer(void) interrupt 1 { i++; } void Main (void) { while (1) printf ("i=%d\n", i); }
Sorry, I make a mistake (char i; printf("%d",i), I cancel my previous reply! Thanks!
The result you expect and the result you are now getting is probably not the result you want. Your while() loop is keeping interrupts disabled 99.9% of the time as there is probably only a jump instruction between EA=1 and EA=0. If you changed your code as follows: int x; while(1) { EA=0; x=i; EA=1; printf("%d\n",x); } you should see the value of x incrementing by a lot more than one for each iteration of the loop. Keeping interrupts disabled almost all the time is almost always a bad idea. Incidentally, if you want to printf() an 8 bit value in Keil use "%bd" for signed char and "%bu" for unsigned char. Stefan
Thank you all! I learn a lot.