my codes:
unsigned int i=0; void Timer(void) interrupt 1 { i++; } void Main (void) { while (1) printf ("i=%d\n", i); }
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.