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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| /*****************/
/* */
/* Timer */
/* */
/*****************/
/*************************************/
/* */
/* Déclaration des Variables */
/* */
/*************************************/
const unsigned short _Led = 2;
volatile int _Cptr = 0;
hw_timer_t *_Timer = NULL;
portMUX_TYPE _Mux = portMUX_INITIALIZER_UNLOCKED;
/************************************/
/* */
/* Appel Fonction Minuterie */
/* */
/************************************/
void IRAM_ATTR onTimer()
{
portENTER_CRITICAL_ISR(&_Mux);
digitalWrite (_Led, !digitalRead(_Led));
Serial.print("Compteur : ");
Serial.println(++_Cptr);
portEXIT_CRITICAL_ISR(&_Mux);
}
/*********************/
/* */
/* Démarrage */
/* */
/*********************/
void setup()
{
pinMode(_Led, OUTPUT);
digitalWrite(_Led, LOW);
Serial.begin(115200);
Serial.println("Début");
_Cptr = 0;
_Timer = timerBegin(0, 80, true); // Diviseur 80 (Prescaler)
timerAttachInterrupt(_Timer, &onTimer, true);
timerAlarmWrite(_Timer, 1000000, true); // 1 seconde
timerAlarmEnable(_Timer);
}
/****************************/
/* */
/* Boucle Itérative */
/* */
/****************************/
void loop()
{
} |
Partager