打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】呼吸灯

[复制链接]
910|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 南来之风 于 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 | 只看该作者
线性的改变占空比实现的呼吸灯其实很生硬,人眼对亮度的感知不是线性的,你看看苹果笔记本**的的呼吸灯就非常柔和

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

250

帖子

2

粉丝