程序配置如下,定时器0中断正常,定时器2中断进不去,请各位大神指导
void Time_init(void)
{
EA=0;
TH0=256-200; //定时器0溢出率=SYSCLK*200,200us中断
TL0=256-200;
TMOD&=0xf0; //设置定时器0工作在模式2
TMOD|=0x02;
TF0=0; //清除标志位
//-----------------------------------------------------------------------
TH2=0x29;
TL2=0x28; //0x2928=10536=65536-55000,55000*4/SYSCLK
RCAP2H=0x29; //10ms中断
RCAP2L=0x28;
T2MOD=0; //设置定时器2工作在自动加载模式(仅向上计数)
T2MOD|=0x10; //选择SYSCLK作为时钟源
T2CON&=~0x39;
TF2=0;
//-----------------------------------------------------------------------
IP|=0x02; //选择定时器0中断优先级
IPH|=0x02;
IP0L|=0x20; //选择定时器2中断优先级
IP0H|=0x20;
//-----------------------------------------------------------------------
ET0=1; //使能定时器0中断
TR0=1; //启动定时器0运行
ET2=1; //使能定时器2中断
TR2=1; //启动定时器2运行
EA=1; //使能全局中断
}
void main(void)
{
Time_init();
TM1640_Init_Data();
while(1)
{
Display();
_nop_();
_nop_();
}
}
void time2_isr(void)interrupt 5
{
TF2=0;
Time_Interrupt();
} |