MTobjets: Exemple 5
Gestion par événements pour UNO, Nano, Mega
C-A-T-H
Problème posé
Vu sur un forum:
Programme complet recommandé
Ce programme se fait complètement sous interruption, et libère loop qui peut être utilisé pour faire autre chose.
// *********************** SlowBlink ***********************
// Allumée 1s, éteinte 1s
const uint8_t LED_SLOW_BLINK = 4;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
MTsoftPWM SlowBlink(LED_SLOW_BLINK, impulsions_de 1000000L micro_secondes, periodes_de 2000000L micro_secondes);
// *********************** FastBlink ***********************
// Allumée 0,11s, éteinte 0,1s
const uint8_t LED_FAST_BLINK = 5;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
MTsoftPWM FastBlink(LED_FAST_BLINK, impulsions_de 110000L micro_secondes, periodes_de 210000L micro_secondes);
// *********************** Assymetric ***********************
// Allumée 50ms, période 1,11s
const uint8_t LED_ASSYMETRIC = 6;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
MTsoftPWM Assymetric(LED_ASSYMETRIC, impulsions_de 50000L micro_secondes, periodes_de 1110000L micro_secondes);
// *********************** A ou B ***********************
const uint8_t LED_A_OU_B = 7;
const uint8_t BOUTON_A_OU = 2;
const uint8_t BOUTON_B_OU = 3;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
void ou(void);
MTbutton BoutonAou(BOUTON_A_OU, ou, ou);
MTbutton BoutonBou(BOUTON_B_OU, ou, ou);
void ou(void)
{
pinMode(LED_A_OU_B, OUTPUT);
digitalWrite(LED_A_OU_B, BoutonAou.getSelect() | BoutonBou.getSelect() ? HIGH : LOW);
}
// *********************** A ET B ***********************
const uint8_t LED_A_ET_B = 8;
const uint8_t BOUTON_A_ET = 2;
const uint8_t BOUTON_B_ET = 3;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
void et(void);
MTbutton BoutonAet(BOUTON_A_ET, et, et);
MTbutton BoutonBet(BOUTON_B_ET, et, et);
void et(void)
{
pinMode(LED_A_ET_B, OUTPUT);
digitalWrite(LED_A_ET_B, BoutonAet.getSelect() & BoutonBet.getSelect() ? HIGH : LOW);
}
// *********************** A ouexclusif B ***********************
const uint8_t LED_A_OUEXCLUSIF_B = 9;
const uint8_t BOUTON_A_OUEXCLUSIF = 2;
const uint8_t BOUTON_B_OUEXCLUSIF = 3;
#include "MTobjects.h" // Voir http://arduino.dansetrad.fr/MTobjects
void ouexclusif(void);
MTbutton BoutonAouexclusif(BOUTON_A_OUEXCLUSIF, ouexclusif, ouexclusif);
MTbutton BoutonBouexclusif(BOUTON_B_OUEXCLUSIF, ouexclusif, ouexclusif);
void ouexclusif(void)
{
pinMode(LED_A_OUEXCLUSIF_B, OUTPUT);
digitalWrite(LED_A_OUEXCLUSIF_B, BoutonAouexclusif.getSelect() ^ BoutonBouexclusif.getSelect() ? HIGH : LOW);
}
// *********************** Pour faire autre chose ***********************
void setup(){}
void loop(){}