应广单片机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&仿真器
  • 应广单片机烧录器
  • 代码生成器
应广单片机开发中的PMC-APN007 LVR设置全解析:如何避免低电压误触发与系统崩溃,单片机电源管理必看!PMC/PMS系列LVR电压阈值配置技巧

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


应广单片机Padauk PFS154微控制器汇编程序使用指南,极简嵌入式编程教程,低成本单片机开发方案,Paduak汇编工具链配置,这是一款专为Padauk PFS154微控制器设计的轻量级汇编开发工具,SRAM变量声明语法

应广单片机Padauk PFS154微控制器汇编程序使用指南,极简嵌入式编程教程,低成本单片机开发方案,Paduak汇编工具链配置,这是一款专为Padauk PFS154微控制器设计的轻量级汇编开发工具,SRAM变量声明语法


如何解决芯片烧录良率下降,应广科技单片机PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,针对部分芯片在半自动机台烧录时可能受杂讯干扰导致烧录良率下降或引脚击穿的问题,PMS150G-100R烧录转接板

如何解决芯片烧录良率下降,应广科技单片机PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,针对部分芯片在半自动机台烧录时可能受杂讯干扰导致烧录良率下降或引脚击穿的问题,PMS150G-100R烧录转接板


应广科技官网公布PMS152E 和 PMS152/PGS152 主要差异表PMS152E,8 位 OTP IO 类型单片机的V2.0版PDF开发文档,在使用 IC 前,请务必认真阅读 PMS152E 相关的 APN,不建议使用于 AC 阻容降压供电或有高 EFT 要求的应用

应广科技官网公布PMS152E 和 PMS152/PGS152 主要差异表PMS152E,8 位 OTP IO 类型单片机的V2.0版PDF开发文档,在使用 IC 前,请务必认真阅读 PMS152E 相关的 APN,不建议使用于 AC 阻容降压供电或有高 EFT 要求的应用


应广科技(padauk)PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,适用硬件烧录器型号PDK5S-P-003 / PDK5S-P-003B / PDK5S-P-003B2 / PDK5S-P-003C

应广科技(padauk)PMC-APN022芯片烧录接线指南–在 PA5 引脚串联电阻,适用硬件烧录器型号PDK5S-P-003 / PDK5S-P-003B / PDK5S-P-003B2 / PDK5S-P-003C


应广单片机(PADAUK)开发应用案例中常见问题的解答,涵盖开发环境、硬件设计、编程调试等方面的问题,适用于消费电子、家电控制、工业控制等场景

应广单片机(PADAUK)开发应用案例中常见问题的解答,涵盖开发环境、硬件设计、编程调试等方面的问题,适用于消费电子、家电控制、工业控制等场景


应广单片机电池电量显示选型,推荐PMS132B,PFS122,ADC采样/电压分段/动态校准/低功耗设计,适配电压范围:2.75V - 4.2V,多通道ADC轮询采集,实现深度休眠场景下μA级的超低功耗表现

应广单片机电池电量显示选型,推荐PMS132B,PFS122,ADC采样/电压分段/动态校准/低功耗设计,适配电压范围:2.75V - 4.2V,多通道ADC轮询采集,实现深度休眠场景下μA级的超低功耗表现


应广单片机开发简易音乐播放器电路程序代码案例,定义8255控制引脚,要实现音乐播放、按键控制以及显示功能控制多个音频播放通道

应广单片机开发简易音乐播放器电路程序代码案例,定义8255控制引脚,要实现音乐播放、按键控制以及显示功能控制多个音频播放通道


应广单片机中断优化策略与实战技巧,如外部中断、定时器中断、串口中断等首先,软件判断中断源的速度要快,可能用位操作或者查表法。其次,减少中断服务函数的执行时间

应广单片机中断优化策略与实战技巧,如外部中断、定时器中断、串口中断等首先,软件判断中断源的速度要快,可能用位操作或者查表法。其次,减少中断服务函数的执行时间


应广单片机(PADAUK) MINI-C 编程指南初级(系列1),台湾科技的 MINI-C 编译器基本上是构建于 ANSI C,MINI-C的语法结构、程序控制语句、函数处理

应广单片机(PADAUK) MINI-C 编程指南初级(系列1),台湾科技的 MINI-C 编译器基本上是构建于 ANSI C,MINI-C的语法结构、程序控制语句、函数处理


应广单片机(mcu)性能特点与在AI应用中的潜力与挑战,低功耗场景的竞争力在智能家居、可穿戴设备等对功耗敏感的场景中

应广单片机(mcu)性能特点与在AI应用中的潜力与挑战,低功耗场景的竞争力在智能家居、可穿戴设备等对功耗敏感的场景中


应广单片机芯片(MCU)的PMS150C-U06 进行编程闪光器, 应广科技(Padauk)的真实且仅有3分钱的开发的控制器,PMS150C 与 PFS154 高度兼容,但只能编程一次(OTP,一次性可编程)

应广单片机芯片(MCU)的PMS150C-U06 进行编程闪光器, 应广科技(Padauk)的真实且仅有3分钱的开发的控制器,PMS150C 与 PFS154 高度兼容,但只能编程一次(OTP,一次性可编程)


网友博客热帖:如果你喜欢使用廉价物美的微控制器,应广单片机(Padauk MCU)系列无疑将是您的最佳选择,它们拥有最强大的架构、包括闪存选项在内的广泛设备、良好的文档以及唯一具有开源工具链的产品线

网友博客热帖:如果你喜欢使用廉价物美的微控制器,应广单片机(Padauk MCU)系列无疑将是您的最佳选择,它们拥有最强大的架构、包括闪存选项在内的广泛设备、良好的文档以及唯一具有开源工具链的产品线


应广单片机MCU的LED蜡烛发光案例, PFS154和PMS150C中的一个PWM来控制 LED 的亮度,使用一种算法生成偏向最大亮度的随机数分布

应广单片机MCU的LED蜡烛发光案例, PFS154和PMS150C中的一个PWM来控制 LED 的亮度,使用一种算法生成偏向最大亮度的随机数分布


应广单片机PMC-APN021充电 MCU 设计使用需知,适用芯片:PMB180/PMB182/PMB183/YMB1801/YMB1805,为避免 Vbat 电压逆流至 Vcc 引脚进而产生漏电现象

应广单片机PMC-APN021充电 MCU 设计使用需知,适用芯片:PMB180/PMB182/PMB183/YMB1801/YMB1805,为避免 Vbat 电压逆流至 Vcc 引脚进而产生漏电现象


开发实力

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

全球渠道

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

品质保证

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

售后服务

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

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码