应广单片机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&仿真器
  • 应广单片机烧录器
  • 代码生成器
模数转换器ADC 如何工作?应广科技官网公布的PMS132/PMS132B8单片机,ADC 装进程的步骤,有 7 个寄存器需要配置

模数转换器ADC 如何工作?应广科技官网公布的PMS132/PMS132B8单片机,ADC 装进程的步骤,有 7 个寄存器需要配置


应广单片机烧录方法,PMS133/PMS134 的烧录脚为 PA3,PA4,PA5,PA6,VDD,GND 这 6 只引脚,随着烧录器版本的不同,每种封装形式烧录方法也不尽相同

应广单片机烧录方法,PMS133/PMS134 的烧录脚为 PA3,PA4,PA5,PA6,VDD,GND 这 6 只引脚,随着烧录器版本的不同,每种封装形式烧录方法也不尽相同


应广单片机YFS1224 系列12bit ADC 型 MTP MCU 带 2K-bit EEPROM,包含两个部分:PFS122B MCU,2Kbit EEPROM,是一款 12bit ADC 类型的 MTP MCU

应广单片机YFS1224 系列12bit ADC 型 MTP MCU 带 2K-bit EEPROM,包含两个部分:PFS122B MCU,2Kbit EEPROM,是一款 12bit ADC 类型的 MTP MCU


应广单片机PMB180 8 位 OTP 型单片机带充电,IC充电器使用与设定,PMB180 的充电器做电性量测V1 电压波形:(CC Mode, R1 = 10Kohm, C1 = 1uF)

应广单片机PMB180 8 位 OTP 型单片机带充电,IC充电器使用与设定,PMB180 的充电器做电性量测V1 电压波形:(CC Mode, R1 = 10Kohm, C1 = 1uF)


单片机选型指南,项目开发如可购买单片机,这里分享干货让你少找弯路,选择微控制器(MCU)的10个步骤,推荐几款常用的单片机

单片机选型指南,项目开发如可购买单片机,这里分享干货让你少找弯路,选择微控制器(MCU)的10个步骤,推荐几款常用的单片机


PMS152G应广科技8 位 OTP SuLED IO 型单片机,工作温度范围:-40°C ~ 85°C,烧录方法,请使用 PDK5S-P-003x 烧录,1.25KW OTP 程序存储

PMS152G应广科技8 位 OTP SuLED IO 型单片机,工作温度范围:-40°C ~ 85°C,烧录方法,请使用 PDK5S-P-003x 烧录,1.25KW OTP 程序存储


应广科技单片机应用开发中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)如何设计声控灯应用解决方案?将介绍设计过程中的关键阶段,包括组件选择、电路设计、电源、编程和测试


开发实力

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

全球渠道

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

品质保证

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

售后服务

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

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码