STM8S Timer2_OC1_PWM1輸出模式
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 實驗平臺: STM8S103F2P6 FM 接收實驗核心板
+ 硬件 : STM8S103F2P6
+ 開發(fā)平臺: IAR For STM8 1.10
+ 仿真器 : ST-Link
+ 日期 : 2010-6-22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "stm8s.h"
/*******************************************************************************
* ==啟用外部晶振函數(shù)==
*******************************************************************************/
voidHSE_CLK_INIT(void)
{
CLK_DeInit();
CLK_HSECmd(ENABLE);
while(SET!=CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_ClockSwitchCmd(ENABLE);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
}
/*******************************************************************************
* ==定時器2初始化函數(shù)==
* TIM2_DeInit(); --> 初始化定時器2寄存器
* TIM2_TimeBaseInit(TIM2_PRESCALER_1, 224); --> 定時器2基本初始化 設(shè)置 分頻系數(shù) , 初值
--> ( 無分頻 , 7372800 / 32768 = 225 校準為224 )
* TIM2_OC1Init(TIM2_OCMODE_PWM1 , TIM2_OUTPUTSTATE_ENABLE , 112 , TIM2_OCPOLARITY_HIGH);
--> 定時器2輸出方式 為PWM1 , 定時器2輸出狀態(tài)使能 , 輸出占空比 50% , 輸出起始電平 為高
* TIM2_Cmd(ENABLE); --> 啟動定時器
*******************************************************************************/
voidTIME2_INIT(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_1,224);
TIM2_OC1Init(TIM2_OCMODE_PWM1,TIM2_OUTPUTSTATE_ENABLE,112,TIM2_OCPOLARITY_HIGH);
TIM2_Cmd(ENABLE);
}
/*******************************************************************************
* ==Main函數(shù)==
* 用示波器測量stm8s103f2p6 的Timer_OC1端,即1腳。得到占空比50%的,32768Hz的方波
* 為確保穩(wěn)定,可以在輸出管教加上上拉電阻
*******************************************************************************/
voidmain(void)
{
HSE_CLK_INIT();
TIME2_INIT();
while(1);
}
+ 實驗平臺: STM8S103F2P6 FM 接收實驗核心板
+ 硬件 : STM8S103F2P6
+ 開發(fā)平臺: IAR For STM8 1.10
+ 仿真器 : ST-Link
+ 日期 : 2010-6-22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "stm8s.h"
/*******************************************************************************
* ==啟用外部晶振函數(shù)==
*******************************************************************************/
voidHSE_CLK_INIT(void)
{
CLK_DeInit();
CLK_HSECmd(ENABLE);
while(SET!=CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_ClockSwitchCmd(ENABLE);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
}
/*******************************************************************************
* ==定時器2初始化函數(shù)==
* TIM2_DeInit(); --> 初始化定時器2寄存器
* TIM2_TimeBaseInit(TIM2_PRESCALER_1, 224); --> 定時器2基本初始化 設(shè)置 分頻系數(shù) , 初值
--> ( 無分頻 , 7372800 / 32768 = 225 校準為224 )
* TIM2_OC1Init(TIM2_OCMODE_PWM1 , TIM2_OUTPUTSTATE_ENABLE , 112 , TIM2_OCPOLARITY_HIGH);
--> 定時器2輸出方式 為PWM1 , 定時器2輸出狀態(tài)使能 , 輸出占空比 50% , 輸出起始電平 為高
* TIM2_Cmd(ENABLE); --> 啟動定時器
*******************************************************************************/
voidTIME2_INIT(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_1,224);
TIM2_OC1Init(TIM2_OCMODE_PWM1,TIM2_OUTPUTSTATE_ENABLE,112,TIM2_OCPOLARITY_HIGH);
TIM2_Cmd(ENABLE);
}
/*******************************************************************************
* ==Main函數(shù)==
* 用示波器測量stm8s103f2p6 的Timer_OC1端,即1腳。得到占空比50%的,32768Hz的方波
* 為確保穩(wěn)定,可以在輸出管教加上上拉電阻
*******************************************************************************/
voidmain(void)
{
HSE_CLK_INIT();
TIME2_INIT();
while(1);
}
評論