Je suis totalement d'accord !
Ce n'est pas incompatible avec les interruptions et ça demande un peu de polling certain de tes exemples.
Exemple si jamais tu appuis sur le bp 1 longtemps ou pas longtemps :
Nous sommes d'accord, le soft c'est avant tout une manière de voir les choses et il y en a autant que de personne.Code:fonction_interruption_bp() { switch(quel_flag_du_port_a_été_levé) { case 0 : etat = 1; break; /* bp1 appuyé */ case 1 : etat = 2; break; /* bp2 appuyé */ case 2 : etat = 3; break; /* bp3 appuyé */ case 3 : etat = 4; break; /* bp4 appuyé */ default : etat = 0; } } regarder_Si_bp1_Encore_Enfoncé_1ms_Plustard() { tempo(1ms); if(bp1 == 1) return 1; return 0; } int main () { while(1) { switch(etat) { case 1 : if(regarder_Si_bp1_Encore_Enfoncé_1ms_Plustard()) { etat = 5; } else { fonction_bp1(); } break; /* bp1 appuyé */ case 2 : fonction_bp2(); break; /* bp2 appuyé */ case 3 : fonction_bp3(); break; /* bp3 appuyé */ case 4 : fonction_bp4(); break; /* bp4 appuyé */ case 5 : appuie_long_fonction_bp1; break; /* bp1 appuie long */ default : veille(); } } }
-----