为什么中断只能进一次?
我想设置电机每隔1s改变占空比,为什么进去中断一次之后后就不会循环?求指教interrupt voidTINT0_isr(void) // CPU-Timer 0
{
CpuTimer0.InterruptCount++;
if((increase==1)&&(decrease==0)) //如果占空比越来越小
{
EvaRegs.CMPR1=EvaRegs.CMPR1+938;
if(EvaRegs.CMPR1>=0x41EB)
{
EvaRegs.CMPR1=0x41EB;//占空比到达最小的10%时,改变变化的方向
increase=0;
decrease=1;
}
}
if((increase==0)&&(decrease==1)) //如果占空比越来越大
{
EvaRegs.CMPR1=EvaRegs.CMPR1-938;
if(EvaRegs.CMPR1<=0x0753)
{
EvaRegs.CMPR1=0x0753;//占空比到达最大的90%时,改变变化的方向
increase=1;
decrease=0;
}
CpuTimer0Regs.TCR.bit.TIF=1; //
PieCtrl.PIEACK.bit.ACK1=1; //
EINT; //开全局中断
应该是相关外设的时钟没有使能 一般只能进一次中断的原因是相关标志没有清零,没法进行下一次 yuerweihappy 发表于 2017-5-16 09:43
一般只能进一次中断的原因是相关标志没有清零,没法进行下一次
经过1s之后,程序运行到Defaults.c文件里的TINT0_isr(void)就停止了 zhangmangui 发表于 2017-5-15 22:32
应该是相关外设的时钟没有使能
时钟没使能还能运行?
页:
[1]