南来之风 发表于 2022-7-30 13:57

【CuriosityNano测评报告】呼吸灯

本帖最后由 南来之风 于 2022-7-30 14:00 编辑

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

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

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

updownq 发表于 2022-8-17 16:14

使用的是pwm吗   

belindagraham 发表于 2022-8-18 18:04

定时器实现感觉好复杂呢

scottmaxwell 发表于 2022-8-20 08:37

线性的改变占空比实现的呼吸灯其实很生硬,人眼对亮度的感知不是线性的,你看看苹果笔记本**的的呼吸灯就非常柔和
页: [1]
查看完整版本: 【CuriosityNano测评报告】呼吸灯