历史上的今天
今天是:2024年11月23日(星期六)
2019年11月23日 | STM8S105系列单片机的PWM输出配置
2019-11-23 来源:eefocus
STM8S105xx的定时器资源:
(1)2个16位通用定时器(TIM2、TIM3),带有2+3个CAPCOM通道(IC、OC或PWM);
(2)高级控制定时器(TIM1):16位,4个CAPCOM通道(捕获/比较通道),3个互补输出,死区插入和灵活的同步;
(3)带有8位预分频器的8位基本定时器(TIM4);
(4)自动唤醒定时器;
(5)2个看门狗定时器:窗口看门狗和独立看门狗。
使用高级控制定时器和普通通用定时器的PWM输出功能在初始化配置上有差异,下面做简单分析:
TIM1——16位高级控制定时器
带有16位预分频的16位递增、递减和双向自动重装载计数器
TIM2、TIM3——16位通用定时器
16位向上计数和自动装载计数器
15位预分频器,分频系数可调整为1~32768之间的2次幂数值
TIM4——8位基本定时器
8位自动装载可调整的预分频器,比例可选为1~128之间的2次幂

配置TIM1_CH1的PWM输出功能:
void Time1_Init()
{
CLK->CKDIVR=0x00;
/*
* 这里设置TIM2的计数频率为 16M/1600=10000Hz
*/
TIM1_TimeBaseInit(1599,TIM1_COUNTERMODE_UP,2000,0); //分频1600,向上计数,TIM1_ARR=1000,重复计数器为0
/*OC1初始化:PWM1模式
输出使能
互补输出不使能
CCR1=1000,占空比为50%
输出有效极性为高
互补输出有效极性为高(无作用)
空闲时输出高
空闲时互补输出高(无作用)
*/
TIM1_OC1Init(TIM1_OCMODE_PWM1,
TIM1_OUTPUTSTATE_ENABLE,
TIM1_OUTPUTNSTATE_DISABLE,
1000,
TIM1_OCPOLARITY_HIGH,
TIM1_OCNPOLARITY_HIGH,
TIM1_OCIDLESTATE_SET,
TIM1_OCNIDLESTATE_SET);
TIM1_OC1PreloadConfig(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE); //PWM输出使能
TIM1_Cmd(ENABLE); //定时器开始计数
}
配置TIM2_CH1的PWM输出功能:
void TIMER2_PWMInit(unsigned short timebase,unsigned short t)
{
TIM2_DeInit();
/*
* TIM2 Frequency = TIM2 counter clock/(ARR + 1)
* 这里设置TIM2的计数频率为 16M/32/(timebase+1)=1K
*/
TIM2_TimeBaseInit(TIM2_PRESCALER_32, timebase);
/*
* PWM1 Mode configuration: Channel1
* TIM2 Channel1 duty cycle = [TIM2_CCR1/(TIM2_ARR + 1)] * 100 = 50%
* TIM2 Channel2 duty cycle = [TIM2_CCR2/(TIM2_ARR + 1)] * 100 = 50%
*/
/* 测试通道1 */
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, t, TIM2_OCPOLARITY_HIGH);
TIM2_OC1PreloadConfig(ENABLE);
TIM2_Cmd(ENABLE);
}
下一篇:stm8 调试硬件I2C心得
史海拾趣
|
为何不接收浮点参数????以及在shell中不能对浮点型全局变量赋值呢??? 代码如下: #include \"vxworks.h\" #include \"stdio.h\" void test(float a,int b) { printf(\"a=%f,b=%d\"); } 编译完了,运行,在windshell中 敲入test(2.2,3)命令运行结果整型b可以打印正确结果,浮点a打印N/A。不明白为什么会这样 ...… 查看全部问答> |
|
我的软件串口,错在那,请指教,谢谢 //ACLK = 32768,波特率为2400的软件串口// #define Bitime_5 0x06 // ~ 0.5 的长度添加一点修正 #define Bitime 0x0E // 427us 长度 ~ 2341波特根据实际需要修改 ...… 查看全部问答> |
|
【低功耗】基于Virtex-4 FPGA的低功耗图像融合系统 基于电源模块、外部存储器和FPGA器件等具体分析了融合系统的低功耗设计。FPGA器件选择了Xilinx公司针对高性能信号处理的Virtex-4 SX35三百万门级芯片,电源模块采用TI公司的两片TPS54310和一片TPS54610,具有低功耗特性,电压调节范围为0.9~3.3 V,调 ...… 查看全部问答> |




