vinay bs
Member level 3
hi guys, i am using pic16f883 micro controller to generate pwm signals to control rgb led, pic has two built in pwm channels,
but i need channels to control all three....
please help me how to generate third channel(any options using timers or can i make use of two ccp channels to generate third one....
below is my code using mikro c compiler..
but i need channels to control all three....
please help me how to generate third channel(any options using timers or can i make use of two ccp channels to generate third one....
below is my code using mikro c compiler..
Code:
#define red PORTC.F1
#define green PORTC.F2
#define blue PORTC.F3
#define sw1 PORTC.F6
#define sw2 PORTC.F5
#define sw3 PORTC.F4
unsigned char press;
unsigned char i,j,k;
void main()
{
C1ON_bit=0;
C2ON_bit=0;
ANSEL=0x00;
ANSELH=0x00;
TRISC=0b11111000;
PORTC=0x00;
PWM1_Init(5000);
PWM2_Init(5000);
PWM1_Start();
PWM2_Start();
press=0;
while(1)
{
if(sw1==0)
{
press=press+1;
if(press=1)
{
red=1;
blue=0;
green=0;
}
else if(press=2)
{
red=0;
blue=1;
green=0;
}
else if(press=3)
{
press=0;
red=0;
blue=0;
green=1;
}
}
if(sw2==0)
{
for(i=0;i<255;i++)
{
PWM2_Set_Duty(i);
Delay_ms(10);
}
for(j=255;j<0;j--)
{
PWM1_Set_Duty(j);
Delay_ms(10);
}
for(k=0;k<255;k++)
{
blue=0;
Delay_ms(2);
Delay_us(500);
blue=1;
Delay_ms(7);
Delay_us(500);
}
}
if(sw3==0)
{
red=1;
green=1;
blue=1;
}
}
}