Pour cela, j'ai besoin de faire un délai variable.
Lorsqu'on appuie sur le bouton, on incrémente un compteur qui servira pour le délai de clignotement de la led :
<code lang=c>...while (1) { if (PINA & button_pin_in){//if button not pushed PORTB |= led_pin_out; // Turn LED on long_delay_ms(blink_delay); PORTB &= ~led_pin_out; // Turn LED off long_delay_ms(blink_delay); }else{//if button pushed
blink_delay=10;
while(!(PINA & button_pin_in)){
_delay_ms(10);
}
... } }</code>
Hélas, la fonction de base "_delay_ms" ne prend que des constantes, pas de variables