1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #define BUTTON_POLLING_INTERVAL 20 //intervalles de lecture du bouton, en ms
#define COUNT_DEBOUNCE 10 //durée maximale autorisée de relâchement du bouton (en nombre d'intervalles)
#define COUNT_SHORT_PRESS 5 //durée mini d'un appui court (en nombre d'intervalles)
#define COUNT_LONG_PRESS 50
unsigned int releasedCount = 0;
unsigned totalCount = 0;
while(totalCount<COUNT_LONG_PRESS)
{
_delay_ms(20);
if((BOUT1)==0)
{
releasedCount=0;
totalCount++;
}
else
{
releasedCount++;
}
if(releasedCount>=COUNT_DEBOUNCE)
{
break;
}
}
//execution des actions apres appui
if(totalCount==COUNT_LONG_PRESS)
{
//inserer ici action appui long
//test2();
eteint_leds();
totalCount=0;
while((BOUT1)==0);
}
else if(totalCount>COUNT_SHORT_PRESS)
{
//inserer ici action appui bref
fonction_A();
PORTA |=(1<<PORTA0);
totalCount=0;
appui_bout1=1;
}
// action double appui
else if((appui_bout1==1)&&(totalCount>COUNT_SHORT_PRESS))
{
eteint_leds();
appui_bout1=0;
} |
Partager