|
#include
#include
#define unchar unsigned char
#define VALID 1
#define INVALID 0
unchar TT2 ;
int preCounter , curCounter ;
long preTime , curTime ;
//设置定时器T2
void T2_set ()
{
//T2中断 方式1工作
T2CON = 0x0d;
//T2MOD = 0x00;
//启动定时 T0
TR2 = VALID;
}
void main ()
{
T2_set () ;
while ( 1 )
{
if ( TF2 = 1 )
{
TT2++ ;
TF2 = 0 ;
}
T2EX = 1 ;
curTime = RCAP2H + RCAP2L ;
T2EX = 0 ;
}
}
下面是变量的值
RCAP2L : 100,64h,01100100b DATA(00CAH)
RCAP2H :235,0EBh,11101011b DATA(00CBH)
curTime : 309,00000135h DATA(0017H)
为什么 curTime 不是等于 100+235 = 335 呢??
我捕捉了 有的时候值是正确的 有的时候就像这样不正确 ? 这是问什么呢 ??
|
|