工具/软件:Code Composer Studio
中断空 CPU_timer0_ISR (空)
{
//
//启动 CPU 定时器1以指示中断开始
//
CpuTimer1Regs.TCR.ALL = 0x0000;
//
//将当前正弦值写入缓冲 DAC
//
DAC_PTR[DAC_NUM]->DACVALS.ALL = sgen_out;
//
//记录当前正弦值
//
dlog (sgen_out);
//
//计算下一个正弦值
//
sgen.calc(&sgen);
//
//缩放下一个正弦值
//
sgen_out =(sgen.out + 32768)>> 4;
//
//确认此中断以从组1接收更多中断
//
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
//
//停止 CPU 定时器1以指示中断结束
//
CpuTimer1Regs.TCR.ALL = 0x0010;
//
//计算以周期为单位的中断持续时间
//
interruptCycles = 0xFFFFFFUL - CpuTimer1Regs.TIM.ALL;
//
//计算以微秒为单位的中断持续时间
//
interruptDuration_us = cpuPeriod_us * interruptCycles;
//
//重新加载 CPU 定时器1
//
CpuTimer1Regs.TCR.ALL = 0x0030;
}
上述几行实际上是如何工作的?