打印
[STC单片机]

STC 15系列硬件PWM 呼吸灯看过来

[复制链接]
1245|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YO拉里多|  楼主 | 2020-5-7 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近想写个用PWM 做全彩呼吸灯,实现三路随机数字(比如R10,G180,B200)特定色彩呼吸程序,根据范例程序调试 输出三路PWM是可以的,但是呼吸程序怎么加进去呢,特定颜色三路想要同时到达(比如1S),需要怎么计算呢??下面代码是可以单路呼吸到最大值
void main()
{
    Init_PWM();

    while(1)
    {
        modify_duty();
    }
}

void Init_PWM()         //  
{
    CMOD = 0X02;        //  

    CCAPM0 = 0X42;      //  
    PCA_PWM0 = 0X00;    //  
    CCAP0L = 0x00;      //  
    CCAP0H = 0X00;      //  
   
                PCA_PWM1 = 0x00;
CCAP1L=0x00;
CCAP1H=0x00;
CCAPM1=0x42;

PCA_PWM2 = 0x00;
CCAP2L=0x00;
CCAP2H=0x00;
CCAPM2=0x42;
       
       
        CL=0;   //
    CR =1;  //
}

void modify_duty()
{
   int i;
       
         for(i=255;i>=1;i--)
   {
       CCAP0H = i;
                 CCAP1H = 0XFF;
                 CCAP2H = 0XFF;
       delay();
   }
   for(i=0;i<255;i++)
   {
       CCAP0H = i;
                 CCAP1H = 0XFF;
                 CCAP2H = 0XFF;
       delay();
   }
  
          for(i=255;i>=1;i--)
   {
       CCAP1H = i;
                 CCAP0H = 0XFF;
                 CCAP2H = 0XFF;
       delay();
   }
         for(i=0;i<255;i++)
   {
       CCAP1H = i;
                 CCAP0H = 0XFF;
                 CCAP2H = 0XFF;
       delay();
   }
  
          for(i=255;i>=1;i--)
   {
       CCAP2H = i;
                 CCAP0H = 0XFF;
                 CCAP1H = 0XFF;
       delay();
   }
         for(i=0;i<255;i++)
   {
       CCAP2H = i;
                 CCAP0H = 0XFF;
                 CCAP1H = 0XFF;
       delay();
   }
  
}

使用特权

评论回复

相关帖子

沙发
YO拉里多|  楼主 | 2020-5-7 15:24 | 只看该作者
**NT018 发表于 2020-5-7 15:07
如下图,ISP下载软件里有现成的范例程序,楼主先测试样一下

可以加您的联系方式在线请教下么?这个我烧进去RGB灯显示白色...

使用特权

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

本版积分规则

5

主题

72

帖子

1

粉丝