//主功能接受:使用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);//0.125us周期 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)
{
PWMVal += 100;
if( PWMVal >= 2000)
{ F_ADD = 0; }
}
else
{
PWMVal -= 100;
if( PWMVal <= 100)
{ F_ADD = 1; }
}
TIM1_SetCompare2(PWMVal);

STM8S PWM 应用 呼吸灯的更多相关文章

  1. 【iCore4 双核心板_ARM】例程八:定时器PWM实验——呼吸灯

    实验原理: STM32的定时器有PWM功能,iCore4的蓝色LED连接在定时器的输出接口上, 可以通过定时器的PWM输出控制LED的亮度,从而实验呼吸灯的功能. 核心代码: int main(voi ...

  2. ZYNQ自定义AXI总线IP应用——PWM实现呼吸灯效果

    一.前言 在实时性要求较高的场合中,CPU软件执行的方式显然不能满足需求,这时需要硬件逻辑实现部分功能.要想使自定义IP核被CPU访问,就必须带有总线接口.ZYNQ采用AXI BUS实现PS和PL之间 ...

  3. 使用pwm进行呼吸灯的设计

    本文源码已经上传至csdn: 程序源码如下; #define LEDC_IO_0 (2) esp_err_t app_main() { ledc_timer_config_t ledc_timer = ...

  4. 【iCore3 双核心板】例程八:定时器PWM实验——呼吸灯

    实验指导书及代码包下载: http://pan.baidu.com/s/1dEnH5dB iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  5. PWM(脉宽调制)——LED特效呼吸灯设计

    简述PWM PWM--脉宽调制信号(Pulse Width Modulation),它利用微处理器的数字输出来实现,是对模拟电路控制的一种非常有效的技术,广泛应用于测量.通信.功率控制与变化等许多领域 ...

  6. STM8S003F3通过PWM波实现三基色呼吸灯(转)

    源: STM8S003F3通过PWM波实现三基色呼吸灯

  7. 浅浅的分析LED呼吸灯的实现和PWM的关系

    前言 在本周,我们在python课上做了一个实验,用ARDUINO使小LED灯模仿出呼吸灯的效果,实验进行的很成功,但是机器当仅输出高/低电平的时候是怎么样才能做到渐亮渐暗(输出电压)的变化呢?在这里 ...

  8. [FPGA]Verilog利用PWM调制巧妙完成RGB三色彩虹呼吸灯(给简约的题目以美妙的解答)

    概述 实现彩虹呼吸灯 题目就是这么简短,但这是目前我碰到的最有意思的一道题目,因为他有无数种解决方法,并且每一种都是那么高级或者巧妙,比如 可以利用3路不同初相的PWM调制信号驱动三颗RGB灯重叠呼吸 ...

  9. 12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯

    https://www.cnblogs.com/yangfengwu/p/11094085.html PWM其实没有什么,就是看着官方给的API,,,然后就是用呗 对了,其实对于RTOS SDK版本的 ...

随机推荐

  1. 浅谈css的行内类型标签和块级标签

    常用标签的行内类型标签有:a.span.img:块级标签有:div.p.h1~6.ul.ol.li.dl.dt.dd. 行内类型标签的特征:标签的大小由标签的内容决定,不能设置width和height ...

  2. 伪装IP进行投票

    伪装IP投票说明 1,目的 在访问网页链接进行投票时,网站往往对同一个IP的投票次数进行了限制,无法连续重复投票.为此可以使用“火狐浏览器+IP修改插件”,通过人为设置浏览器IP,绕过网站IP检查,可 ...

  3. 北大ACM(POJ1015-Jury Compromise)

    Question:http://poj.org/problem?id=1015 问题点:DP. Memory: 1352K Time: 94MS Language: C++ Result: Accep ...

  4. 8月中旬之后的学习计划 --- react

    这段时间快活了,放纵了,玩hi了,接下来该好好的学习新知识了. 鉴于目前业界比较火的前端js框架有react.vue,决定先从react开始学习.之前有简单的接触过它的一些基本的语法知识,这次准备全面 ...

  5. jsp中的basePath,获取应用的路径

    1 2 3 4 5 String path = request.getContextPath();      String basePath = request.getScheme()+": ...

  6. python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序

    Python编程实战主要关注了四个方面 即:优雅编码设计模式.通过并发和编译后的Python(Cython)使处理速度更快.高层联网和图像.书中展示了在Python中已经过验证有用的设计模式,用专家级 ...

  7. * screen recording on Ubuntu

    - byzanz- kazam-recordmydesktophttps://www.ubuntupit.com/15-best-linux-screen-recorder-and-how-to-in ...

  8. Spring MVC 概述

    [简介] Spring MVC也叫Spring web mvc,属于表现层的框架.SpringMVC是Spring框架的一部分,是在Spring 3.0后发布的. 由以上Spring的结构图可以看出, ...

  9. 解决maven无法加载本地lib/下的jar包问题(程序包XXX不存在)

    这次一个项目用到maven编译,我在本地开发的时候jar包都是放在WEB-INF/lib目录下,通过 BuildPath将jar包导入,然后用MyEclipse中的:maven package命令打成 ...

  10. 【Codeforces 140C】New Year Snowmen

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 每次都选择剩余个数最多的3个不同数字组成一组. 优先消耗剩余个数多的数字 这样能尽量让剩余的数字总数比较多,从而更加可能得到更多的3个组合 [ ...