Modifications

Controleur de Lumière

1 176 octets ajoutés, 22 avril 2014 à 20:54
interruptions
dans le [http://www.atmel.com/Images/doc8006.pdf datasheet], on voit que les trois entrées des boutons sont sur le même port d'interruption
 
 
J'ai pour l'instant pas implémenté la fonction warning.
 
Pour mettre en action les interruptions, j'ai renseigné la fonction ISR(PCINT0_vect) qui est appelée à chaque interruption sur les pins concernés
 
<code lang=c>
ISR(PCINT0_vect) // interrupt service routine
{ // called when PCINT0 changes state
 
 
/////////////BLINKERS
if((!(button_pins & LeftBton_pin)) && blink_mode==0 ){
blink_mode=1;
}
if((!(button_pins & RightBton_pin)) && blink_mode==0 ){
blink_mode=2;
}
if((button_pins & RightBton_pin) && blink_mode==2){
blink_mode=0;
}
if((button_pins & LeftBton_pin) && blink_mode==1){
blink_mode=0;
}
/////////////////LIGHT
if(!(button_pins & LightBton_pin) && btonLightState==0){
//LightBton_pin rise up
//
btonLightState=1;
}
if((button_pins & LightBton_pin) && btonLightState==1){
 
//LightBton_pin rise down
btonLightState=0;
//change light mode
if(light_mode<2) {
light_mode+=1;
}else{
light_mode=0;
}
}
return;
}
 
</code>
====pwm====
0
6 691
modifications