应广单片机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-APN003 IO 输出引脚连接长导线时的应用需知,PA3 用于控制 TRIAC,线路接法为 PA3 输出引脚先接100 公分长的导线

应广科技单片机应用开发中PMC-APN003 IO 输出引脚连接长导线时的应用需知,PA3 用于控制 TRIAC,线路接法为 PA3 输出引脚先接100 公分长的导线


应广触摸单片机 PMS161 触摸功能内含一个触摸检测电路,用户可通过寄存器 ESOCR配置触摸模块电源

应广触摸单片机 PMS161 触摸功能内含一个触摸检测电路,用户可通过寄存器 ESOCR配置触摸模块电源


应广科技 PMB183 8 位 OTP 型单片机带充电,内置一个硬件充电器,此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理

应广科技 PMB183 8 位 OTP 型单片机带充电,内置一个硬件充电器,此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理


低功耗高效能语音控制IC,为您的设备赋予语音交互能力,应广科技语音单片机芯片打造极致语音控制体验的IC选择

低功耗高效能语音控制IC,为您的设备赋予语音交互能力,应广科技语音单片机芯片打造极致语音控制体验的IC选择


PMB180应广单片机8 位 OTP 型单片机带充电,内置一个硬件充电器。此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理

PMB180应广单片机8 位 OTP 型单片机带充电,内置一个硬件充电器。此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理


PMC-APN002 过电压保护应用需知,IO 输入电压高过 VDD 或低于 GND,都可能造成应广单片机损伤,或是因内部电流引发单片机不正常工作

PMC-APN002 过电压保护应用需知,IO 输入电压高过 VDD 或低于 GND,都可能造成应广单片机损伤,或是因内部电流引发单片机不正常工作


语音芯片IC_MCU单片机语音方案,使用Arduino和蓝牙DIY语音控制家庭自动化案例,用语音命令无线控制家用电器和灯光

语音芯片IC_MCU单片机语音方案,使用Arduino和蓝牙DIY语音控制家庭自动化案例,用语音命令无线控制家用电器和灯光


PMS154C单片机8位PWM计数器/比较器使用,选择 PA3 为负输入和 Vinternal R 为正输入,Vinternal R 的电压为(18/32)*VDD,AC 阻容降压供电

PMS154C单片机8位PWM计数器/比较器使用,选择 PA3 为负输入和 Vinternal R 为正输入,Vinternal R 的电压为(18/32)*VDD,AC 阻容降压供电


语音控制IC应广单片机(MCU)如何设计声控灯应用解决方案?将介绍设计过程中的关键阶段,包括组件选择、电路设计、电源、编程和测试

语音控制IC应广单片机(MCU)如何设计声控灯应用解决方案?将介绍设计过程中的关键阶段,包括组件选择、电路设计、电源、编程和测试


语音控制IC低功耗微控制器(MCU)的语音控制,什么构成了良好的语音控制解决方案,语音用户界面 (VUI) 使人类能够使用语音与机器通信

语音控制IC低功耗微控制器(MCU)的语音控制,什么构成了良好的语音控制解决方案,语音用户界面 (VUI) 使人类能够使用语音与机器通信


PFC232 应广单片机,工业级- 8 位 MTP 型单片机(FPPATM)带 12 位增强型 ADC,自于内部bandgap参考电压或0.25*VDD,89条高效的指令

PFC232 应广单片机,工业级- 8 位 MTP 型单片机(FPPATM)带 12 位增强型 ADC,自于内部bandgap参考电压或0.25*VDD,89条高效的指令


应广科技Mini-C语言开发PMS150G,Mini-C语言是台湾应广公司推出的自家单片机开发语言,兼容C语言,实现Mini C的代码产生器

应广科技Mini-C语言开发PMS150G,Mini-C语言是台湾应广公司推出的自家单片机开发语言,兼容C语言,实现Mini C的代码产生器


应广科技PMC-APN001 ADC 模拟信号源输出阻抗应用需知,所有带 ADC 单片,ADC 取样周期为 2us,信号源对于芯片内部充放电

应广科技PMC-APN001 ADC 模拟信号源输出阻抗应用需知,所有带 ADC 单片,ADC 取样周期为 2us,信号源对于芯片内部充放电


PMB183 8位OTP型应广单片机带充电应用方案,3连套11位SuLED (Super LED) PWM生成器,充电模式待机功耗57uA(VCC)

PMB183 8位OTP型应广单片机带充电应用方案,3连套11位SuLED (Super LED) PWM生成器,充电模式待机功耗57uA(VCC)


Padauk应广科技单片机PFS154超低功耗LED闪光灯,尽可能长时间地用一块电池的电量让LED闪烁的挑战又如何呢

Padauk应广科技单片机PFS154超低功耗LED闪光灯,尽可能长时间地用一块电池的电量让LED闪烁的挑战又如何呢


开发实力

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

全球渠道

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

品质保证

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

售后服务

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

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码