如何用c寫一個pwm的程式呢 |
尚未結案
|
gofome
一般會員 發表:23 回覆:9 積分:6 註冊:2003-05-14 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: if 在一個中斷(timer)內 要送出5個訊號 (等於要開關各do5次) 下一個中斷內 可能送出8個訊號時 要如何寫呢 謝謝 (不知道有沒有po錯板呢)您應該不會是用 BCB 寫吧... 否則在 Windows 下 Timer 是不準的,而且最快也只有 1msec ( 1KHz ) 如果要產生 PWM (單相還是三相) 那可能最高不到 100 Hz... ■Introduction to Pulse Width Modulation http://www.embedded.com/story/OEG20010821S0096 以單相 PWM 最簡單的寫法, 如細分 100 等分, 則在 Timer 內的虛擬碼程式如下: TIMER() { Counter ; // 累計 Counter if(Counter < PWM輸出百分比) { // TODO: 輸出 ON/High } else { // TODO: 輸出 OFF/Low } if(Counter>=100) // 每 100 次為一週期->歸零 Counter=0; }三相以上則還有相位的考量,請自行參考您所需要的規格,程式寫法與單相沒什麼差異。 只是,一般的 PWM 如果要可用應該都會在較高的頻率,不是用 BCB 寫的,而是單晶片或是 DSP 晶片本身就支援,而程式本身只作參數設定,而不是自己去產生。所以您說的要作開關的動作... 應該也不是用 IO 卡來玩才是,至少也要用到 8051 或 DSP 直接去控制 IO 才有可能作到。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |