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

【CuriosityNano测评报告】03:pwm呼吸灯

[复制链接]
7433|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 740071911 于 2021-7-4 09:25 编辑

实现pwm呼吸灯效果
1、pwm功能添加,打开mcc,根据如下配置,设置pwm输出到RC1引脚。



2、代码编写。

因为pwm为12bit,所以每1ms增加1,到0~4095时间太长,观察效果不好,
改为1ms ,PWM占空比增加2,这样往复循环,4s左右的呼吸灯。

pwm函数介绍
PWM1_16BIT_SetSlice1Output1DutyCycleRegister();//设置占空比


定时器中断函数
void TMR0_DefaultInterruptHandler(void){
    // add your TMR0 interrupt custom code
    // or set custom function using TMR0_SetInterruptHandler()
   
    static unsigned short int tmr_cnt = 0;
    static unsigned short int pwm_duty = 0;
    static unsigned char dir = 0;
   
    // clear the TMR0 interrupt flag
    PIR3bits.TMR0IF = 0;
    // Write to the Timer0 register
    TMR0H = timer0ReloadVal16bit >> 8;
    TMR0L = (uint8_t) timer0ReloadVal16bit;
   
    if (dir == 0)  //increase duty
    {
        pwm_duty+=2;
        if (pwm_duty >= 4095)
        {
             pwm_duty =4095;
             dir = 1;
        }
    }
    else          //decrease duty
    {
        pwm_duty -=2;
        if (pwm_duty > 60000)
        {
            pwm_duty = 0;
            dir = 0;
        }
     }
     PWM1_16BIT_SetSlice1Output1DutyCycleRegister(pwm_duty);
     PWM1_16BIT_LoadBufferRegisters();//使能占空比修改
     if(++tmr_cnt >= 1000)
     {
          tmr_cnt = 0;
          flag_1s = 1;
          //IO_RC1_Toggle();
     }
}


3、完整代码
pwm_led_03.X.rar (516.03 KB)

使用特权

评论回复
沙发
usysm| | 2021-9-5 20:06 | 只看该作者
PWM的占空比越大,那么释放的能量越高

使用特权

评论回复
板凳
typeof| | 2021-9-5 20:06 | 只看该作者
pwm控制呼吸灯 呼吸三次然后灯熄灭的程序怎么写

使用特权

评论回复
地板
yujielun| | 2021-9-5 20:07 | 只看该作者
怎么用DA做呼吸灯?   

使用特权

评论回复
5
htmlme| | 2021-9-5 20:07 | 只看该作者
PWM调节光强?         

使用特权

评论回复
6
pklong| | 2021-9-5 20:07 | 只看该作者
制作呼吸灯的C语言程序怎样编写?  

使用特权

评论回复
7
touser| | 2021-9-5 20:08 | 只看该作者
巧妙利用pwm原理   

使用特权

评论回复
8
myiclife| | 2021-9-5 20:08 | 只看该作者
PWM 输出比较模式吗   

使用特权

评论回复
9
uytyu| | 2021-9-5 20:09 | 只看该作者
可以直接使用单片机的PWM引脚  

使用特权

评论回复
10
iyoum| | 2021-9-5 20:09 | 只看该作者
做一个通过PWM来控制小灯的亮度  

使用特权

评论回复
11
jkl21| | 2021-9-5 20:09 | 只看该作者
每次PWM更新时都要使用判断来增或减,会大大影响程序效率。

使用特权

评论回复
12
yujielun| | 2021-9-5 20:09 | 只看该作者
怎么通过修改PWM的占空比实现RGB灯的不同颜色  

使用特权

评论回复
13
typeof| | 2021-9-5 20:10 | 只看该作者
两路PWM控制8盏LED呼吸灯   

使用特权

评论回复
14
usysm| | 2021-9-5 20:10 | 只看该作者
怎么控制PWM从而实现呼吸灯效果  

使用特权

评论回复
15
myiclife| | 2021-9-5 20:10 | 只看该作者
过PWM可以非常简单方便地实现呼吸灯  

使用特权

评论回复
16
touser| | 2021-9-5 20:10 | 只看该作者
PWM波可以由GPIO口产生  

使用特权

评论回复
17
pklong| | 2021-9-5 20:10 | 只看该作者
呼吸灯使用的光源类型一般是什么?  

使用特权

评论回复
18
htmlme| | 2021-9-5 20:10 | 只看该作者
以实现呼吸灯的效果  

使用特权

评论回复
19
jkl21| | 2021-9-5 20:10 | 只看该作者
DMA可以操作吗  

使用特权

评论回复
20
iyoum| | 2021-9-5 20:10 | 只看该作者
PWM调制数据从0取最大,再由最大到0,交替变化。  

使用特权

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

本版积分规则

个人签名:想低声说句不在乎,可会飞的心总是在高处!

47

主题

865

帖子

5

粉丝