Changes between Version 28 and Version 29 of IOC_T06


Ignore:
Timestamp:
Mar 20, 2026, 11:50:00 AM (7 months ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IOC_T06

    v28 v29  
    180180
    181181{{{#!c
    182 // --------------------------------------------------------------------------------------------------------------------
     182/ --------------------------------------------------------------------------------------------------------------------
    183183// Multi-tâches cooperatives : solution basique mais efficace :-)
    184184// --------------------------------------------------------------------------------------------------------------------
    … …  
    198198unsigned long waitFor(int timer, unsigned long period) {
    199199    static unsigned long last_period[MAX_WAIT_FOR_TIMER];  // il y a autant de timers que de tâches
    200     unsigned long current = micros() / period;             // numéro de période
     200    unsigned long current = micros() / period;             // numéro de période
    201201    unsigned long delta   = current - last_period[timer];  // gère le wrap-around
    202202    if (delta) last_period[timer] = current;               // mise à jour si déclenchement
    … …  
    204204}
    205205
    206 //--------- définition de la tache Led
     206//--------- déclaration de la tache Led
    207207
    208208typedef struct {
    … …  
    212212  int etat;                                               // etat interne de la led
    213213} ctx_led_t;
     214
     215void init_led(ctx_led_t * ctx, int timer, unsigned long period, byte pin);
     216void step_led(ctx_led_t * ctx);
     217
     218//--------- déclaration de la tache Mess
     219
     220typedef struct {
     221  int timer;                                              // numéro de timer utilisé par WaitFor
     222  unsigned long period;                                   // periode d'affichage
     223  char mess[20];
     224} ctx_mess_t;
     225
     226void init_mess(ctx_mess_t * ctx, int timer, unsigned long period, const char * mess);
     227void step_mess(ctx_mess_t *ctx);
     228
     229//--------- définition de la tache Led
    214230
    215231void init_led(ctx_led_t * ctx, int timer, unsigned long period, byte pin) {
    … …  
    230246//--------- definition de la tache Mess
    231247
    232 typedef struct {
    233   int timer;                                              // numéro de timer utilisé par WaitFor
    234   unsigned long period;                                   // periode d'affichage
    235   char mess[20];
    236 } ctx_mess_t;
    237 
    238248void init_mess(ctx_mess_t * ctx, int timer, unsigned long period, const char * mess) {
    239249  ctx->timer = timer;
    … …  
    248258}
    249259
    250 //--------- Déclaration des contexte de tâches
     260//--------- déclaration des contextes de tâches
    251261
    252262ctx_led_t Led1;
    … …  
    263273  step_led(&Led1);                                       
    264274  step_mess(&Mess1);
    265 }                             
     275}                 
    266276}}}
    267277