n76e003 我单独开一个定时器定时器3 调试起来 中断可以进去是没有问题的,同理 我单独开一个定时器0也是没问题的,仿真中断也是可以进去的,
但是同时打开,却永远只能进去一个。
代码如下
int main (void)
{
wait_for_system_stabilize();
set_EA; //开全局中断
IO_init();
TIM3_init();
while(1)
{
Adc_DriverTask();
}
}
void delay(UINT8 xms)
{
UINT8 i,j;
for(i=0;i<250;i++)
for(j=0;j<xms;j++);
clr_ET0;
clr_TR0;
}
void Set_SEG(unsigned char dat)
{
TIM0_init();
delay(5);
}
void TIM3_init(void)
{
RH3 = RELOAD_VALUE_H; //initial counter values
RL3 = RELOAD_VALUE_L;
clr_T3PS0;
set_T3PS1;
clr_T3PS2; // T3 ps is 1/4
set_ET3; //enable Timer3 interrupt
set_EA; //enable interrupts
set_TR3; //Timer3 run
}
/************************************************************************************************************
* TIMER 2 interrupt subroutine
************************************************************************************************************/
void Timer3_ISR (void) interrupt 16
{
Type_Display();
clr_TF3;
}
void TIM0_init(void)
{
TMOD = 0XFF;
TIMER0_MODE0_ENABLE; //Timer 0 and Timer 1 mode configuration
clr_T0M;
TH0 = 0xff;
TL0 = 0xf1;
set_ET0; //enable Timer0 interrupt
set_EA; //enable interrupts
set_TR0; //Timer0 run
}
/************************************************************************************
* Timer2 interrupt subroutine
*************************************************************************************/
void Timer0_ISR (void) interrupt 1
{
static pdata u8 Count0=0,Count1=0,Count2=0;
//设定定时器初值
TH0=0xff;
TL0=0xf1;
}
|