http://www.kobakant.at/DIY/?p=3393
La difficulté est de faire du PWM sur les phares sans perdre la temporisation des clignotants
le principe est le suivant :
Blink_delay correspond à la durée de clignotement des clignotants
* on allume les clignotants si besoin
* pendant 10 cycles d'une durée de (Blink_delay/10) on allume (et on étient si besoin) les phares
* on étiend les clignotants
* pendant 10 cycles d'une durée de (Blink_delay/10) on allume (et on étient si besoin) les phares
le code de ce pwm du pauvre est :
<code lang=c>
void poormanPWM(){//for lights
int i;
for (i=0; i<10; i++) {
if(light_mode!=0){
set(Lights_port,Light_pin); // Turn light on if necessary
}else{
clear(Lights_port,Light_pin);//else shut it
}
long_delay_ms(blink_delay/20);
if(light_mode==1) clear(Lights_port,Light_pin); // Turn light off half time in low mode
long_delay_ms(blink_delay/20);
}
}
</code>
[[Catégorie:FabAcademy]]