为什么单独测试定时器是10ms,放到我的整个程序就变成了1.2,大家有没有遇到过,是什么影响了定时器?
/*定时器中断*/
void T0_service(void) interrupt 1
{
unsigned int TXcount=0; //定时器计时
TF0=0;
TR0=0; //关中断
--u10ms;
u1s++;
// JINYIN=!JINYIN; //测试用,到这里就成了1.2ms了,怎么回事?
if(u1s>=6000) //一分钟定时
{
JINYIN=!JINYIN;
u1s=0;
TXcount++;
if(TXcount>=TxTime)
{
fcycle=1;
TXcount=0;
}
}
if(u10ms==0)
{
f10ms=1;
}
TH0=0xDB; //重新赋初值
TL0=0xFF;
TR0=1; //开中断
}
/*定时器初始化*/
void T0_init()
{
TMOD=0x01; //设置定时器0为工作方式1
TH0=0xDB; //重装初始值(65535-9216)=56319,10ms,DBFF
TL0=0xFF;
ET0=1; //允许定时中断
TR0=0; //启动定时中断
}
STC的片子,中断都用上了,这是定时器部分的程序,我单独测试定时器,是10ms,放进去就成了1.2ms,用示波器检查了,有没有遇到过的?那里干扰了定时器吗? |