全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1879
推到 Plurk!
推到 Facebook!

如何用c寫一個pwm的程式呢

尚未結案
gofome
一般會員


發表:23
回覆:9
積分:6
註冊:2003-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-03 15:59:07 IP:61.221.xxx.xxx 未訂閱
if 在一個中斷(timer)內 要送出5個訊號 (等於要開關各do5次) 下一個中斷內 可能送出8個訊號時 要如何寫呢 謝謝 (不知道有沒有po錯板呢)
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-10 10:23:51 IP:211.76.xxx.xxx 未訂閱
引言: 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
系統時間:2024-05-02 6:40:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!