应广单片机8位单片机PWM呼吸灯代码, 利用PWM计数器分别为 TM2\TM3\T16单片机嵌入式硬件开发

整理编辑:逐高电子技术开发部 / 日期:2024-8-7

计数器的介绍

对于应广单片机来说,它提供了3种计数器,分别为 TM2\TM3\T16
其中对于TM2\TM3来说,是属于PWM计数器,用法是简单的,但是要求比较高,需要对应的引脚来达到它的要求
从芯片手册上,可以看到有且最多只能是6个引脚受到TM2\TM3控制,这时候就需要用到T16时钟进行计时,
控制芯片引脚传出PWM波形,控制灯的明暗呼吸效果

 

看门狗计数器


看门狗计数器是一个定时器,其时钟源来自内部低频振荡器(ILRC)。利用 misc 寄存器的选择,可以设定三
种不同的看门狗计数器超时时间,它们是:
 当 misc[1:0]=10 时:16384 个 ILRC 时钟周期
 当 misc[1:0]=01 时: 4096 个 ILRC 时钟周期
 当 misc[1:0]=01(默认) 时:2048 个 ILRC 时钟周期


ILRC 的频率有可能因为工厂制造的变化, 电源电压和工作温度而漂移很多; 使用者必须预留安全操作范
围。为确保看门狗计数器在超时溢出周期之前被清零,在安全时间内,用指令“wdreset”清零看门狗计数器。在上
电复位或任何时候使用 wdreset 指令,看门狗计数器都会被清零。当看门狗计数器超时溢出时,PMC156/PMS156
将复位并重新运行程序。请特别注意,由于生产制程会引起 ILRC 频率相当大的漂移,上面的数据仅供设计参考
用,还是需要以各个单片机测量到的数据为准。

看门狗计数器超时溢出的相关时序

   看门狗计数器超时溢出的相关时序



 功能名称: TM2/TM3产生PWM渐变


 功能编号: 020104
 适应芯片: 只有TM2的芯片:
 PMC系列:PMC234
 PMS系列:PMS234 PMS150C PMS150G PMS152 PMS15A
 TM2和TM3都有的芯片:
 PFC系列:PFC151 PFC154 PFC232 PFC161
 PFS系列:PFS154 PFS172 PFS173 PFS122 PFS123
 PMC系列:PMC131 PMC232
 PMS系列:PMS130 PMS131 PMS232 PMS164 PMS154C PMS171B PMS132B PMS133 PMS134
 


程序说明:


 设置TM2或PB3从PB2脚产生3906.25Hz的频率
 初始关闭TM2或TM3做到0%的占空比,
 然后打开TM2或TM3开始调节占空比至100%
 再调节占空比至最低,关掉TM2或TM3做到0%,然后重复做到渐变
 通过增加TM2B或TM3B的值使占空比不断增加
 通过减少TM2B或TM3B的值使占空比不断减少

 


 注意事项:
  1.案例为PMS154C,其他芯片时钟源和输出IO脚可能存在不同,其他原理都相同
 
 #include "extern.h"
 
 void TM2_Init(void)设置频率
 {
  $ TM2C SYSCLK,PB2,PWM; 选择时钟源,输出脚,PWM模式,是否反极性输出(写Inverse为启用,不写则为停用)
 根据要求时钟可选择SYSCLK, EOSC, IHRC, ILRC等,输出脚可以选择Disable(不选择), PB2, PB4, PA3
 注:时钟源与输出脚位的选择请参考对应芯片的datasheet,个别芯片有些不同
 $ TM2S 8bit,/1,/1; 选择分辨率,预分频,分频
 分辨率可选择8bit,6bit,预分频可选择/1, /4, /16, /64,分频可选择/1 ~ /32(对应TM2S[4:0]的00000 ~ 11111)
 TM2B = 0; 1/256的亮度
 
  PWM模式的频率和占空比计算
 频率=时钟源/(分辨率*预分频*分频)=1M / (2^8 * 1 * 1) = 3906.25Hz
 占空比=(TM2B+1)/分辨率*100%=(0 + 1) / 2^8 *100% = 1/256*100% = 0.38%
 
 $ TM2C Stop; 关闭PWM,即0%的亮度
 }
 除脚位不同,其他原理和TM2一样
 void TM3_Init(void)
 {
  $ TM3C SYSCLK,PB5,PWM; 输出脚可选择Disable(不选择),PB5, PB6, PB7
 注:时钟源与输出脚位的选择请参考对应芯片的datasheet,个别芯片有些不同
 $ TM3S 8bit,/1,/1;
 TM3B = 0; 1/256的亮度
 $ TM3C Stop; 关闭PWM,0%的亮度
 }
 bit Add_Sign;
 byte PWM_Num;
 void PWM_Grad(void)
 {
 if(Add_Sign)PWM递增
 {
 $ TM2C SYSCLK,PB2,PWM;打开PWM
  $ TM3C SYSCLK,PB5,PWM;
 PWM_Num++;每次增加1/256
 TM2B = PWM_Num;
  TM3B = PWM_Num;
 if(PWM_Num == 255)如果亮度100%,开始递减
 {
 Add_Sign = 0;
 }
 .delay 10000;延时10ms,控制渐变时长
 }
 elsePWM递减
 {
 PWM_Num--;
 TM2B = PWM_Num;
  TM3B = PWM_Num;
 if(PWM_Num == 0)亮度1/256,不是全灭
 {
 $ TM2C Stop;关闭PWM来实现0%亮度
  $ TM3C Stop;
 Add_Sign = 1;
 }
 .delay 10000;
 }
 }
 
 void FPPA0 (void)
 {
 .ADJUST_IC SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;
 
 PWM_Num = 0;
 Add_Sign = 1;
 TM2_Init();
  TM3_Init();
 while (1)
 {
 PWM_Grad();
 }
 }
 
 
 void Interrupt (void)
 {
 pushaf;
 
 if (Intrq.T16)
 {  T16 Trig
  User can add code
 Intrq.T16 = 0;
 ...
 }
 
 popaf;
 }

应广单片机技术资料

  • 台湾应广单片机官网
  • 应广单片机例程
  • 应广单片机编程指南
  • 应广单片机定时器
  • 技术开发工具
  • 应广单片机IDE&仿真器
  • 应广单片机烧录器
  • 代码生成器
用 PFS154 实现 RC 测量:原理、编程与实战技巧 | 深圳逐高电子技术分享(附代码)应广单片机供应商,8 位 32 位 MCU, 单片机技术服务,消费电子 MCU 方案

用 PFS154 实现 RC 测量:原理、编程与实战技巧 | 深圳逐高电子技术分享(附代码)应广单片机供应商,8 位 32 位 MCU, 单片机技术服务,消费电子 MCU 方案


应广单片机什么产品会用上,型号参数, 技术文档,全面解析应广单片机的核心优势、应用领域、型号参数及选型策略,助力工程师快速匹配项目需求

应广单片机什么产品会用上,型号参数, 技术文档,全面解析应广单片机的核心优势、应用领域、型号参数及选型策略,助力工程师快速匹配项目需求


应广单片机,PMS150系列芯片,批量烧录稳定性提升与抗干扰损坏解决方案,可将批量烧录良率提升至99.5%以上,因干扰导致的损坏率控制在0.1%以下

应广单片机,PMS150系列芯片,批量烧录稳定性提升与抗干扰损坏解决方案,可将批量烧录良率提升至99.5%以上,因干扰导致的损坏率控制在0.1%以下


PMS150C 芯片音乐单片机,硬核玩家必看应广科技单片机(Padauk) ,低功耗方案 ,携手 ATtiny4,最小芯片玩转音频黑科技,硬核音频实测,低功耗MCU、小家电专用单片机

PMS150C 芯片音乐单片机,硬核玩家必看应广科技单片机(Padauk) ,低功耗方案 ,携手 ATtiny4,最小芯片玩转音频黑科技,硬核音频实测,低功耗MCU、小家电专用单片机


PMD040 24位高精度模数转换器:应广科技(PADAUK)推出的 PMD040 24 位模数转换器,凭借卓越性能与灵活设计,成为称重、应变检测等场景的理想选择。

PMD040 24位高精度模数转换器:应广科技(PADAUK)推出的 PMD040 24 位模数转换器,凭借卓越性能与灵活设计,成为称重、应变检测等场景的理想选择。


应广单片机深度解析:OTP 单片机应用、国产 MCU 替代,国产 MCU 的成本优势与选型避坑指南(附逐高电子代理供货支持)OTP的“一次性”特性也带来挑战

应广单片机深度解析:OTP 单片机应用、国产 MCU 替代,国产 MCU 的成本优势与选型避坑指南(附逐高电子代理供货支持)OTP的“一次性”特性也带来挑战


应广科技Padauk单片机MCU低成本开发指南:七段屏/温控/医疗设备合规单片机方案,OTP存储器 | 12位ADC采集 | 状态机协议 | 睡眠功耗0.1μA

应广科技Padauk单片机MCU低成本开发指南:七段屏/温控/医疗设备合规单片机方案,OTP存储器 | 12位ADC采集 | 状态机协议 | 睡眠功耗0.1μA


应广PMS154C:0.5μA休眠电流如何改写小家电能效规则?2025芯片选型指南应广单片机如何成为小家电的“隐形心脏”?低调强者应广单片机单片机如何撬动智能硬件千亿市场

应广PMS154C:0.5μA休眠电流如何改写小家电能效规则?2025芯片选型指南应广单片机如何成为小家电的“隐形心脏”?低调强者应广单片机单片机如何撬动智能硬件千亿市场


应广8位单片机开发指南:多核FPPA架构×低成本触摸方案×极简开发工具链,逐高电子专注于低成本、高性价比 8 位微控制器 (MCU) 应用案例设计开发

应广8位单片机开发指南:多核FPPA架构×低成本触摸方案×极简开发工具链,逐高电子专注于低成本、高性价比 8 位微控制器 (MCU) 应用案例设计开发


应广科技PADAUK 微控制器烧录指南:EASYPDKPROG 和 FreePDK-Writer 使用详解 (含 PMS150C/PFS154 测试固件)特别适合超低成本、简单控制的应用(如LED闪烁)

应广科技PADAUK 微控制器烧录指南:EASYPDKPROG 和 FreePDK-Writer 使用详解 (含 PMS150C/PFS154 测试固件)特别适合超低成本、简单控制的应用(如LED闪烁)


应广科技Padauk微控制器开发全攻略:SDCC环境配置与EASYPDKPROG烧录实战教程和PFS154单片机开发编译器配置

应广科技Padauk微控制器开发全攻略:SDCC环境配置与EASYPDKPROG烧录实战教程和PFS154单片机开发编译器配置


应广科技单片PFC161,PMS152低成本开发驱动步进电机方案:在SOT23-6封装两引脚H桥设计详解,微控制器睡眠模式,低功耗电机控制,步进电机驱动方案

应广科技单片PFC161,PMS152低成本开发驱动步进电机方案:在SOT23-6封装两引脚H桥设计详解,微控制器睡眠模式,低功耗电机控制,步进电机驱动方案


应广科技单片机PADAUK微控制器开发全解析:FPPA IDE与Mini.C实战指南,极低成本生产产品的微控制器制造商,在遇到应广单片机(PADAUK)生态系统后,以低成本的微控制器 ,不是那么糟糕的事情

应广科技单片机PADAUK微控制器开发全解析:FPPA IDE与Mini.C实战指南,极低成本生产产品的微控制器制造商,在遇到应广单片机(PADAUK)生态系统后,以低成本的微控制器 ,不是那么糟糕的事情


如何用应广PFC886-S16单片机实现BLDC无感控制?算法+代码全公开,低成本BLDC驱动方案,对比STM32方案节省30%的秘诀,过流保护如何设计?硬件+软件双重防护方案

如何用应广PFC886-S16单片机实现BLDC无感控制?算法+代码全公开,低成本BLDC驱动方案,对比STM32方案节省30%的秘诀,过流保护如何设计?硬件+软件双重防护方案


应广单片机开发中的PMC-APN007 LVR设置全解析:如何避免低电压误触发与系统崩溃,单片机电源管理必看!PMC/PMS系列LVR电压阈值配置技巧

应广单片机开发中的PMC-APN007 LVR设置全解析:如何避免低电压误触发与系统崩溃,单片机电源管理必看!PMC/PMS系列LVR电压阈值配置技巧


开发实力

专业资深的软硬件开发工程师团队,熟悉行业客户产品硬件技术平台解决方案

全球渠道

为客户提供高性价比的产品和服务,满足客户及时快速的电子生产制造需求

品质保证

专业的测试保证团队,保证每批方案的稳定性,兼容性,和抗干扰性

售后服务

专业的技术服务团队,24小时为客户提供各种软硬件的技术支持和售后服务

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码