编写的一个电网上升沿检测进中断的程序,RAM在线运行捕获中断运行没有问题,但是烧进FLASH里边并在RAM里边运行的话就无法进入捕获中断了,其他的中断AD,Spwm都正常进入,请问这是为什么?
void InitECapture()
{
ECap2Regs.ECEINT.all = 0x0000;
ECap2Regs.ECCLR.all = 0xFFFF;
ECap2Regs.ECCTL1.bit.CAPLDEN = 0;
ECap2Regs.ECCTL2.bit.TSCTRSTOP = 0;
ECap2Regs.ECCTL2.bit.CONT_ONESHT = 1;
ECap2Regs.ECCTL2.bit.STOP_WRAP = 0;
ECap2Regs.ECCTL1.bit.PRESCALE = 0;
ECap2Regs.ECCTL1.bit.CAP1POL = 1;
ECap2Regs.ECCTL1.bit.CTRRST1 = 1
ECap2Regs.ECCTL2.bit.SYNCI_EN = 0;
ECap2Regs.ECCTL2.bit.SYNCO_SEL = 2;
ECap2Regs.ECCTL1.bit.CAPLDEN = 1;
ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap2Regs.ECCTL2.bit.REARM = 1;
ECap2Regs.ECEINT.bit.CEVT1 = 1;
}
Terry Deng:
楼主是说把中断程序放在ram运行吗。 请注意是否有正确把中断程序从flash放到ram里,例如memcpy(&RamfuncsRunStart,&RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
另外请注意有没初始化flash,建议使用例程的函数InitFlash();