日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

51實(shí)現(xiàn)SPWM算法,請(qǐng)高手指點(diǎn)

用51的兩個(gè)定時(shí)器,T0控制頻率,T1控制脈寬,實(shí)現(xiàn)載波比N=150的SPWM,用的是規(guī)則采樣法,在T0的中斷里查表計(jì)算T1的計(jì)數(shù)值來改變脈寬,現(xiàn)在遇到的問題是,我感覺算法沒問題,因?yàn)槿绻徊楸淼脑挘敵霾ㄐ螞]問題,但是加入計(jì)算的話,輸出波形就不對(duì)了,就這一句,T1CNT=(M*sin[i]+10000)*T0CNT/2/10000 ;這句轉(zhuǎn)換成匯編的話,我看了下要40句,應(yīng)該是這條語句拖住了單片機(jī),應(yīng)高手指點(diǎn)一下怎么辦

核心程序:

void timer0_ISR(void) interrupt 1  //頻率控制

{

spwm1=~spwm1;

spwm2=~spwm1;

TH0=T0_high;

TL0=T0_low;

T1CNT=(M*sin[i]+10000)*T0CNT/2/10000 ;   //規(guī)則采樣法公式簡化

T1CNT=65535-T1CNT;  //note

TH1=T1CNT>>8;

TL1=T1CNT%256;

TR1=1;

i++;

if(i==150)

i=0;

}

void timer1_ISR(void) interrupt 3 //脈寬控制

{

spwm1=~spwm1;

spwm2=~spwm1;

TR1=0;

}

全部回復(fù)(2)
正序查看
倒序查看
wells
LV.4
2
2011-08-14 11:40

可能你來錯(cuò)地方了。你到數(shù)字電源部分走走。

0
回復(fù)
2011-10-06 10:45
@wells
可能你來錯(cuò)地方了。你到數(shù)字電源部分走走。
不要用計(jì)算,用查表,寫一個(gè)SIN函數(shù)表,要快很多,如果沒有AD取樣反饋計(jì)算,幾個(gè)微妙完成,加入反饋計(jì)算40微妙內(nèi)能完成
0
回復(fù)
發(fā)