打印

cs32g030用定时器做呼吸灯的延迟

[复制链接]
47|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
red666|  楼主 | 2025-3-13 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int main(void)
{
        timer3_init();
        pwm_config1();
        uint16_t pwm_val =500;
        uint8_t dir = 1;
        while(1)
        {               
                if(T1000ms_flag==1)//1000ms触发一次
                {
                        T1000ms_flag=0;
                        pwm_val +=0;
                        pwm_duty_config(TM2,pwm_val);
                        if(pwm_val>=1000)
                        pwm_val=100;
                }
        }
}
pwm_val +=0; 灯可以亮,pwm_val +=10(或其他值)灯不亮;

使用特权

评论回复

相关帖子

沙发
飞思啦| | 2025-3-13 15:59 | 只看该作者
会不会是这一句代码, pwm_duty_config(TM2,pwm_val);,有问题,加0等于值没有变,其代码内部逻辑可能发现新值和老值一样,就return掉了,如果发现值发生了变化,就尝试去更新pwm的值,但是因为函数写的有问题,导致值并没有更新进去,或者更新进去的是一个固定为0的值,导致你的灯不亮,没变化效果?

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝