[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】呼吸灯

[复制链接]
1124|3
 楼主| 南来之风 发表于 2022-7-30 13:57 | 显示全部楼层 |阅读模式
本帖最后由 南来之风 于 2022-7-30 14:00 编辑

此次来体验一下使用PWM来驱动LED,实现呼吸灯的效果。

首先实现的是一个延迟函数:
  1. void myDelay(unsigned int x){
  2.     while(x--);
  3. }
然后,实现一个慢慢变亮的程序,这里使用的方法是先让RF3输出高电平,保持一段时间;然后输出低电平,再保持一段时间。目的是实现PWM的效果。
  1.         for(i = 0; i < 300; i++){
  2.             IO_RF3_LED0_SetHigh();
  3.             myDelay(300-i);
  4.             IO_RF3_LED0_SetLow();
  5.             myDelay(i);
  6.         }
最后,实现一个慢慢变暗的程度:
  1.         for(i = 0; i < 300; i++){
  2.             IO_RF3_LED0_SetLow();
  3.             myDelay(300-i);
  4.             IO_RF3_LED0_SetHigh();
  5.             myDelay(i);
  6.         }  
最终效果:

目前使用MPLABX对PIC单片机编程变得非常简单,不过MPLABX工具本身使用起来比较卡,也有别的网友反映过。希望可以改进一下。
现在可以很轻松的使用配置工具,最低限度的编写代码来实现想要的功能,还是非常方便的。别忘了,这还是个8位单片机!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
updownq 发表于 2022-8-17 16:14 | 显示全部楼层
使用的是pwm吗   
belindagraham 发表于 2022-8-18 18:04 | 显示全部楼层
定时器实现感觉好复杂呢  
scottmaxwell 发表于 2022-8-20 08:37 | 显示全部楼层
线性的改变占空比实现的呼吸灯其实很生硬,人眼对亮度的感知不是线性的,你看看苹果笔记本**的的呼吸灯就非常柔和
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

293

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部