Bonjour,
je souhaite détection un appui sur un bouton poussoir afin d'incrémenter une variable ( choix), la valeur de la variable correspondant à une couleur de LED.
En clair, un appui, allumage LED verte , 2 ème appui, allumage LED rouge etc...
Lors de l'appui je passe de 5V à 0, puis de 0 à 5V. Quelle type de détection dois je construire ?
Pour l'instant j'ai construit mon code tel quel : (Mais si je suis là c'est parce qu'il ne fonctionne pas et que je ne comprends pas mes erreurs). Merci donc à ceux qui m'aideront.
Code:int detection_front_montant(void){ static u16 old_state = 0; static int choix; u16 new_state = GPIO_ReadInputPin(GPIOD,GPIO_PIN_7); if (old_state ==0 && new_state == 1) { choix++; } old_state = new_state; return choix; } void main(void) { int d=0; bool i = FALSE; CLK_Config(); GPIO_Config(); TIM1_Config(); TIM4_Config(); enableInterrupts(); //wfi(); detection_front_montant(); if(choix>2)choix=0; switch (choix) { case 0: for (d=0;d<2000;d++){ GPIO_WriteHigh(GPIOB,GPIO_PIN_1); GPIO_WriteHigh(GPIOC,GPIO_PIN_1); GPIO_WriteLow(GPIOB,GPIO_PIN_2); GPIO_WriteLow(GPIOB,GPIO_PIN_3); }break; case 1: for (d=0;d<2000;d++){ GPIO_WriteHigh(GPIOC,GPIO_PIN_1); GPIO_WriteHigh(GPIOB,GPIO_PIN_2); GPIO_WriteLow(GPIOB,GPIO_PIN_1); GPIO_WriteLow(GPIOB,GPIO_PIN_3); }break; case 2: for (d=0;d<2000;d++){ GPIO_WriteHigh(GPIOC,GPIO_PIN_1); GPIO_WriteHigh(GPIOB,GPIO_PIN_3); GPIO_WriteLow(GPIOB,GPIO_PIN_2); GPIO_WriteLow(GPIOB,GPIO_PIN_1); } break; } }
-----