硬件:利用Timer的捕捉比较功能,输出波形,软件:利用DDS原理,查256个8bit的波表,输出SPWM波通过截至频率100HZ左右的低通滤波,LC和RC都尝试过,输出波形有很大的毛刺。检查波表没有问题,用数字示波器查看SPWM波,在出现毛刺的地方,对应SPWM波一小周期的占空比发生不连续的突变。从整个波形上看,这种情况呈周期性。另外,通过改变波表降低输出正弦波的幅度,毛刺可以消失。软件没有其他模块,只有一个TAxCCR0的中断函数。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我认为不能完全解决。我分析了一下,我是进入TAxCCR0中断改变它的值,来调整脉宽,但是一进入中断,TAR重新计数,到你给TAxCCR0重新赋值,已经计数了N个,但是如果你新赋予的值小于此时的TAR,那么经过定时器比较,在下个周期这个新赋的值就不起作用,也就是说,如果你用OUTMOD_7高电平不复位,继续高电平,在相同的一个周期,高电平变大,占空比变大,反映到波形上该点的电压值变大形成个刺。减少幅度,没有出现刺,是因为你赋的值确保你在下个周期都有效,进行正常的高低电平反转。希望我的解释能够给你启发,如果你能不通过降幅改善波形,能否分享一下,如果还不理解我的解释,请尽快告诉我,以便交流,或者你有其他利用这块单片机做SPWM波的思路,分享一下。
正准备回复,发现你发帖已经发现了问题的要点。
主要是你的定时器始终和CPU主时钟一样,CPU来不及处理
优先使用TitmerB,看看手册,那是有缓冲器的
首先,中断中总尽量不要放入计算,计算想办法放到主程序中去,中断中直接给TACCRx赋值。
第二,你还用了一个定时器中断,会干扰即使处理。因为没有msp430硬件嵌套中断,所以这一点要想办法处理。
第三,TACCR0=256,首先,2一般是255,周期就是256了。如果可以另外加硬件,可以将TACCR0设置成511之类的,如果周期还是能够达到的话,这样那个sin表的最小值可以为256了
第四,优先使用TitmerB,看看手册,那是有缓冲器的
没仔细考虑你的情况,只是提点建议,不一定行,您可以思考一下能否有用
这个你自己思考一下行不行,具体我也没怎么想,我也不了解具体的过程
反正我觉得在TACCR0中断中给TACCR1赋值的时候可能会导致突变,至于是不是你那个现象的根本原因就不知道了
您好!
我最近在学习有关逆变的内容,恰巧在网上看到了您的文章。用您的程序,试了一下,滤波出来是 一个正弦波。我想请教您您的正弦波表是如何得到的呢?为什么我用自编的C程序替换以以下的波表:
127,130,132,135,138,140,143,145,
148,150,153,155,158,160,163,165,
167,170,172,174,177,179,181,183,
185,188,190,192,194,196,198,200,
202,203,205,207,209,211,212,214,
216,217,219,220,222,224,225,226,
228,229,230,232,233,234,235,237,
238,239,240,241,242,243,244,245,
245,246,247,248,248,249,250,250,
251,251,252,252,252,253,253,253,
253,254,254,254,254,254,254,254,
254,254,254,253,253,253,253,252,
252,251,251,250,250,249,249,248,
247,247,246,245,244,243,242,242,
241,240,238,237,236,235,234,233,
231,230,229,227,226,224,223,222,
220,218,217,215,213,212,210,208,
206,205,203,201,199,197,195,193,
191,189,187,185,183,180,178,176,
174,171,169,167,164,162,160,157,
155,152,150,147,145,142,139,137,
134,131,129,126,123,121,118,115,
112,110,107,104,101,98,95,92,
89,87,84,81,78,75,72,69,
66,63,60,57,54,51,48,44,
41,38,35,32,29,26,23,20,
17,14,10,7,4,1,2,5,
8,11,15,18,21,24,27,30,
33,36,39,42,45,49,52,55,
58,61,64,67,70,73,76,79,
82,85,88,90,93,96,99,102,
105,108,110,113,116,119,122,124出来的正弦波不是很标准呢?