本帖最后由 pizizhu1234 于 2014-9-1 14:59 编辑
void Timer_Init()
{
//Timer0 Initialise
T0CS=0; //时钟选择:内部时钟
PSA=0; //预分频器分配给TMR0
PS2=0; PS1=0; PS0=1; //预分频比选择
TMR0=0x13; //设置中断初始值
T0IF=0; //清除TMR0中断标志位
T0IE=1; //使能TMR0溢出中断
//Timer2 Initialise
T2CKPS1=0; T2CKPS0=1; //预分频比选择
T2OUTPS3=0; T2OUTPS2=0; T2OUTPS1=0; T2OUTPS0=0; //后分频比选择
// TMR2=0x13; //设置中断初始值
PR2=100;
TMR2IF=0; //清除TMR2中断标志位
TMR2IE=1; //使能TMR2匹配中断
TMR2ON=1; //开Timer2
GIE=1; //开全局中断
}
void interrupt All_Int()
{
if(T0IE&&T0IF)
{
T0IF=0; //清除TMR0中断标志位
TMR0=0x11; //设置中断初始值
LATD4=~LATD4;
Buzz_T++;
if(Buzz_T>800)
{
// T0IE=0;
Buzz_T=0;
}
}
if(TMR2IF&&TMR2IE&&TMR2ON)
{
TMR2IF=0;
// TMR2=0x13;
LATC6=~LATC6;
}
}
这里有个问题想请问一下.当T0IE=0的时候.不进入中断,导致TIMER2没法判断.这是什么原因?版主帮我看看.我看版主在好多关于中断的帖子里让楼主了解中断结构.想请问一下我对中断结构的理解有没有到位.如果没有请指点一下.我查了很多资料.自己的理解大概是这样.希望能给我一些点拨. |