关于ccs中的delayus这个延时函数是否准确?

各位大侠: 请问一下这个delayus这个函数延时准确吗?我用这个函数在我的pwm中断中延时,如下,我用的updowm模式的pwm,希望通过延时来降低pwm的频率,我现在的pwm频率是1。1445khz,周期为0。873ms,这个频率对于步进电机来说很高,所以我想通过这种方法把它降下来,进入中断后把电平拉低,延时0.873ms,再输出高电平interrupt void EPWM1_INT(void){ EPwm1TimerIntCount++; // Clear INT flag for this timer EPwm1Regs.ETCLR.bit.INT = 1; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // PWM toggle low/high EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; DELAY_US(873); EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // PWM toggle low/high EPwm1Regs.AQCTLA.bit.CAD= AQ_CLEAR; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;}/**/可是这样的结果输出的脉冲一段时间有,一段时间没有,很不稳定,是因为delayus不准吗?

回复 5# 我用的定时器的中断延时,就没有问题,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-27
想要精确制导延迟的时间,既然不能用delay可否用NOP指令实现呢
第2个回答  2013-10-27
回复 charrijon 的帖子他这个就是在中断中使用的延时啊,怎么会被中断打断呢?麻烦解释一下吧 .
第3个回答  2013-10-27
回复 3# 有道理啊,呵呵,我说怎么老是有问题,却找不到原因
第4个回答  2013-10-27
这种延时会被中断打断的,你应该用另一种方法。