本帖最后由 去月球读博士 于 2014-1-7 09:24 编辑
最近用2407 做逆变器的控制器,遇到一个问题:逆变器带独立负载时输出电压的频率是25HZ,不是我所设计的50HZ。我的配置情况如下:
外部晶振为10M,4倍频之后即为40M。周期寄存器对的值为1000,连续增减模式。一个工频周期有400个点(400个对称的三角波),那么输出电压的周期应该为:400*2000/40M=0.02.即为20ms(50HZ),但是输出频率却我设计的一半。
一种解释就是在一个三角波的时间内(50us)不能处理完我的中断服务子程序,这样在下一个下益中断时,由于中断服务子程序没有跑完,中断标志位没有清零,不能响应,直到程序处理完毕。这样的话一个中断服务子程序就占用了两个三角波的时间,输出电压的频率就会减半。
这个解释似乎很合理,我把中断子程序减少一些后(包括采样程序),周期就对了。但是我感觉我的程序代码并不是很长,50条语句的样子,20K的开关频率,dsp都不能在一个三角波周期内执行完?程序中没有除法运算,大概有4个乘法(结果为长整型),其他的就是很简单的语句了。这样的话dsp不弱爆了么,求大神指点。
|