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

利用timer中斷寫的PWM,其控制頻率如何調整

答題得分者是:handystudio
skyerter
一般會員


發表:8
回覆:3
積分:2
註冊:2011-02-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-02-27 19:21:41 IP:123.205.xxx.xxx 訂閱
此副程式的PWM的頻率為100Hz,要如何調到1kHz?

void timer0_isr(void) interrupt 1
{

T ;
if(T==100)
{
T=1;
Signal=1;
}
if(T==PWM)
{
T=PWM;
Signal=0;
}

void time0_init()
{
EA=1;
ET0=1;
TMOD=0x02;
TH0=(256-10);
TL0=(256-10);
TR0=1;
}
handystudio
高階會員


發表:1
回覆:81
積分:106
註冊:2005-03-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-04-06 10:34:06 IP:219.80.xxx.xxx 訂閱
你是使用12MHz XTAL 嗎?
假設是使用12MHz XTAL, 此程式10us中斷一次,中斷100次,Signal回到1,即1000us Signal固定回到1,此為信號週期=1ms, 頻率F=1/T = 1/1ms = 1KHz, 不是100Hz,程式本身應該就是1KHz, 無需調整.
===================引 用 skyerter 文 章===================
此副程式的PWM的頻率為100Hz,要如何調到1kHz?

void timer0_isr(void) interrupt 1
{

T ;
if(T==100)
{
T=1;
Signal=1;
}
if(T==PWM)
{
T=PWM;
Signal=0;
}

void time0_init()
{
EA=1;
ET0=1;
TMOD=0x02;
TH0=(256-10);
TL0=(256-10);
TR0=1;
}
------
歡迎光臨 輕巧工作室
網站 http://www.handystudio.tw
控制電路板客製設計、製作交貨
8051專題製作/專題客製
系統時間:2017-10-23 6:35:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!