工具/软件:Code Composer Studio
您好!
我在 CCS7中的 Lab3中运行示例代码时遇到问题、该文件最初可以正常工作、但当我今天尝试运行时、在内存浏览器中似乎不再更新。
中断 void adca1_ISR (void)
{
//读取 ADC 结果并存储在循环缓冲区中
如果(触发!= 0)
{
AdcaResults[resultsIndex]= AdcaResultRegs.ADCRESULT0;
AdccResults[resultsIndex++]= AdccResultRegs.ADCRESULT0;
if (results_buffer_size <= resultsIndex)
{
resultsIndex = 0;
pretrig = 0;
触发= 0;
//更新 PWM
EPwm1Regs.TBPRD =周期1;
EPwm1Regs.CMPA.bit.CMPA = dutyCycl1;
EPwm5Regs.TBPRD =周期1;
EPwm5Regs.CMPA.bit.CMPA = dutyCycl5;
EPwm5Regs.TBPHS.bit.TBPHS =相位偏移5;
}
}
//此代码标识 PWM1A 上的低电平到高电平转换,因此结果缓冲器始终启动
//在上升沿。 这使得 PWM1和 PWM5之间的相位观测更加清晰。
否则(pretrig!= 0)
{
触发|= GpioDataRegs.GPADAT.bit.GPIO0;
}
否则 pretrig = GpioDataRegs.GPADD.bit.GPIO0 - 1;
//从中断返回
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 ADC INT1标志
PieCtrlRegs.PIEACK.all = PIEACK_Group1;//确认 PIE 组1以启用进一步的中断
}
上面的代码是中断例程、我尝试在存储器浏览器中查看的寄存器是未更新的 AdcaResults、我可以看到 AdcaResultRegs.ADCRESULT0发生了变化、因此代码正在运行、正如我之前所说、该代码正常工作、所以我很困惑。
我要注意的一点是、当它工作时、我在内存浏览器中访问"AdcaResults"、它以蓝色命名、与其他寄存器类似、这种情况似乎不再出现