sbit Rouge at RB0_bit;
sbit Vert at RB1_bit;
sbit Bleu at RB2_bit;
sbit Rouge_Direction at TRISB0_bit;
sbit Vert_Direction at TRISB1_bit;
sbit Bleu_Direction at TRISB2_bit;
int i = 0 ,Compteur_PWM = 2000; void Delay(int temps);
void Rouge_haut(void);
void Rouge_bas(void);
void Vert_haut(void);
void Vert_bas(void);
void Bleu_haut(void);
void Bleu_bas(void);
void Rouge_haut(void){ for (i = 0; i < Compteur_PWM; i++)
{
Rouge = 0;
Delay(Compteur_PWM - i);
Rouge = 1;
Delay(i);
}
}
void Rouge_bas(void){ for (i = 0; i < Compteur_PWM; i++)
{
Rouge = 1;
Delay(Compteur_PWM - i);
Rouge = 0;
Delay(i);
}
}
void Vert_haut(void){ for (i = 0; i < Compteur_PWM; i++)
{
Vert = 0;
Delay(Compteur_PWM - i);
Vert = 1;
Delay(i);
}
}
void Vert_bas(void){ for (i = 0; i < Compteur_PWM; i++)
{
Vert = 1;
Delay(Compteur_PWM - i);
Vert = 0;
Delay(i);
}
}
void Bleu_haut(void){ for (i = 0; i < Compteur_PWM; i++)
{
Bleu = 0;
Delay(Compteur_PWM - i);
Bleu = 1;
Delay(i);
}
}
void Bleu_bas(void){ for (i = 0; i < Compteur_PWM; i++)
{
Bleu = 1;
Delay(Compteur_PWM - i);
Bleu = 0;
Delay(i);
}
}
void Delay(int temps)
{
while(temps>100)
temps--;
}
void main(void)
{
CMCON |= 7; TRISA = 0;
PORTA = 0;
TRISB = 0;
PORTB = 0;
while(1){
Rouge=1;
Delay_ms(1000); Bleu_haut();
Delay_ms(1000);
Rouge_bas();
Delay_ms(1000);
Vert_haut();
Delay_ms(1000);
Bleu_bas();
Delay_ms(1000); Rouge_haut();
Delay_ms(1000); Bleu_haut();
Delay_ms(1000); Vert_bas();
Bleu_bas();
}
}