|
unsigned char aaa=0;
//下面是得到一秒的时间
void TIM_0 (void) interrupt 1 using 1
{
static count=0;
if(count==20)
{
m0++;
if(m0>=10)
{
m0=0;
m1++;
}
count=0;
}
count++;
aaa++;
}
//外部中断int0
void int_0(void) interrupt 3 using 1
{
switch1++;
aaa=0;
}
因为外部中断int0的优先级高于定时器T0的。所以当外部中断int0被触发时,是不是定时器TIM_0将被停止,执行完外部中断int0后才又开始计时,这样是不是影响计时的准确性呢? 如果影响计时准确性,怎么解决呢?
这样当触发int0时,能将aaa清零吗? 因为当外部中断int0触发时会自动保护aaa的值,当int0执行完毕后返回tim_0时会重新将int0触发时保护的aaa值读取,这样是不是就不能将aaa清零了? 如果我想将aaa清零,我该怎么做呢?
|
|