目的是想使用定时器1控制定时器0的启动(定时器每隔5检测一次是否设置倒计时时间,如果设置测启动定时器0进行倒计时,否侧不启动)
定时部分程序
void Time0_Init()
{
count = 0;
min = 1;
sec = 0;
mTimer0Clk12DivFsys(); //T0定时器时钟设置
mTimer1Clk12DivFsys(); //T1定时器时钟设置
mTimer_x_ModInit(0,1); //T0定时器模式设置16位定时器
mTimer_x_ModInit(1,1); //T1定时器模式设置16位定时器
mTimer_x_SetData(0,0xC350); //T0定时器赋值5MS
mTimer_x_SetData(1,0xC350); //T1定时器赋值5MS
mTimer0RunCTL(0); //T0定时器启动
mTimer1RunCTL(1); //T1定时器启动
ET0 = 1; //T0定时器中断开启
ET1 = 1; //T1定时器中断开启
}
void mTimer0Interrupt( void ) interrupt INT_NO_TMR0 using 1 //timer0中断服务程序,使用寄存器组1
{
mTimer_x_SetData(0,0xC350); //非自动重载方式需重新给TH0和TL0赋值
count++;
if(count==10)
{
count=0;
if(sec==0)
{
if(min!=0)
{
sec=59;
min--;
}
else
{
mTimer0RunCTL(0); //T0定时器停止
}
}
else sec--;
}
}
//主要是控制定时器1的中断程序,如果加入这个就不能使用,主要是什么问题呢,
void mTimer1Interrupt( void ) interrupt INT_NO_TMR1 using 2 //timer1中断服务程序,使用寄存器组2
{
mTimer_x_SetData(1,0xC350);
cnt++;
if(cnt>=15) //计时3s
{
cnt=0;
if(key1==1&&key2==1&&(min>0||sec>0)) //按键松开,并且有设置时间
{
mTimer0RunCTL(1); //开启定时器0;
}
}
}
|