STM8S PWM 應用 呼吸燈

2021-06-22 03:14:39 字數 2304 閱讀 1633

//主功能接受:使用mcu stm8s105c6 的pwm通道2 pc2 來做呼吸燈 已經驗證ok,呵

//呵,這個pwm設定剛開始用還是有點麻煩,因為是自己摸索,花點時間,還是攻克了

。//所用子函式都是呼叫stm8s的庫函式stm8s_tim.c 中的。

巨集定義:

//分頻巨集

//計數器的時鐘頻率(fck_cnt)等於fck_psc/( pscr[15:0]+1)。

#define tim1_prescaler_1 ((u16)0x00)

#define tim1_prescaler_2 ((u16)0x01)

#define tim1_prescaler_3 ((u16)0x02)

#define tim1_prescaler_4 ((u16)0x03)

#define tim1_prescaler_5 ((u16)0x04)

// pwm 頻率設定

#define mdiv2

//16m 2分頻的設定

#if defined(mdiv2)

#define tim1_div_set tim1_div2

#define pwmfre_8khz 1000//主頻率 16m/2=8m 1/8k=1/8m*1000 週期 0.125us

#define pwmfre_4khz 2000

#define pwmfre_2khz 4000

#define pwmfre_1khz 8000

#define pwmfre_05khz 16000

#define pwmfre_025khz 32000

#define pwmfre_020khz 40000//200hz 週期5000us /0.125 =40000

#define pwmfre_38khz 210//用於紅外38khz載波

#define pwmfre_open 70//1/3的pwm占空比

#else

//16m 不分頻的設定

#define tim1_div_set tim1_div1

#define pwmfre_8khz 2000

//1/8k=1/16m*2000

#define pwmfre_4khz 4000

#define pwmfre_2khz 8000

#define pwmfre_1khz 16000

#define pwmfre_05khz 32000

#define pwmfre_025khz 64000

#define pwmfre_38khz 421//用於紅外38khz載波

#define pwmfre_open 140//1/3的pwm占空比

#endif

//初始化呼叫:

tim1_prescalerconfig(tim1_prescaler_2,tim1_pscreloadmode_immediate);

//1分頻即不分配 允許事件更新

tim1_oc2init

(tim1_ocmode_pwm1,tim1_outputstate_enable,tim1_outputnstate_enable,

0,tim1_ocpolarity_low,tim1_ocnpolarity_high,

tim1_ocidlestate_set,tim1_ocnidlestate_set);

//pwm1模式

tim1_countermodeconfig(tim1_countermode_up);//向上計數模式

tim1_arrpreloadconfig(enable);//重新預裝載使能

tim1_oc2preloadconfig(enable);//比較器2預狀態使能

tim1_setcounter(0);//初始化計數值

tim1_setautoreload(pwmfre_020khz);週期 40*0.125=5us 200khz 週期

是5us 5/0.125

tim1_setcompare2(0);//占空比值

tim1_ctrlpwmoutputs(enable);//pwm控制使能

tim1_cmd(enable);//使能tim1計數

tim1_ccxncmd(tim1_channel_2,enable);//第二通道 輸出使能

//主程式呼叫(10ms執行1次):

//更改占空比

if(f_add)

}else

}tim1_setcompare2(pwmval);

STM8S PWM 應用 呼吸燈

主功能接受 使用mcu stm8s105c6 的pwm通道2 pc2 來做呼吸燈 已經驗證ok,呵 呵,這個pwm設定剛開始用還是有點麻煩,由於是自己摸索。花點時間。還是解決了 所用子函式都是呼叫stm8s的庫函式stm8s tim.c 中的。巨集定義 分頻巨集 計數器的時鐘頻率 fck cnt 等...

stc12c5a60s PWM與呼吸燈

pwm週期2000us 定時器0工作在方式2 占空比沒120ms更新一次 上電時,占空比從50 開始,每次增加5 漲到95 開始減少,每次占空比減少5 減到5 以後,再開始增加 每100us中斷一次 include typedef unsigned char u8 u8 zhouqi count 記...

精準定時呼吸燈 STM32F103C8

入門stm32的第一貼 之前一直停留在51的水平,最近因為課題需要,硬著頭皮開始了stm32,主要是完成了以下學習目標 1.完成了基於庫函式的stm32軟體框架的組建 2.掌握了非中斷型的精準微秒級和毫秒級的延遲函式的使用。主函式 title 呼吸燈 author 小呼呼哈哈哈 include le...