最近想用單片機硬體實作RGB灰度的變化,比如R155,G120,B10,的呼吸到R10,G160,B200,的呼吸,根據范例程式,三路PWM,單路呼吸現在可以實作。可是特定色彩的呼吸,要怎么計算才能實作呢
void modify_duty();
void Init_PWM();
void delay();
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();
}
}
uj5u.com熱心網友回復:
你想要一個什么樣的顏色。針對你選的三色燈應該有一個對應的表格,詳細的說明了各顏色的比例和對應的顏色。uj5u.com熱心網友回復:
不錯,解決了,制定了表格,存放特定顏色,讀值就可以了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/25613.html
標籤:單片機/工控
上一篇:DC/DC電源模塊的變壓器
