Changes between Version 8 and Version 9 of IOC_T05
- Timestamp:
- Mar 11, 2022, 10:03:21 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IOC_T05
v8 v9 3 3 <h1><font size=+2> Programmation ESP32 / Arduino 4 4 }}} 5 6 Le [htdocs:files répertoire] contient package eps32.tgz et le json du package. 5 7 6 8 … … 64 66 }}} 65 67 66 Le [htdocs:files] contient package eps32.tgz et le json du package.67 68 68 69 = Vérification de l'environnement … … 102 103 La structure contexte ressemble à : 103 104 {{{#!c 104 typedefstruct Tache_s {105 struct Tache_s { 105 106 unsigned int etat; 106 107 int config; 107 } Tache_t;108 Tache_tT1, T2; // 2 contextes pour 2 instances de tâches ayant le même comportement108 }; 109 struct Tache_s T1, T2; // 2 contextes pour 2 instances de tâches ayant le même comportement 109 110 }}} 110 111 … … 112 113 C'est la fonction `setup_Tache()`qui initialise le contexte avec des paramètres. 113 114 {{{#!c 114 void setup_Tache( Tache_t*ctx, params...) {115 void setup_Tache(struct Tache_s *ctx, params...) { 115 116 // Initialisation du contexte} 116 117 ctx->etat = etat_initial; // reçu dans les paramètres … … 181 182 //--------- définition de la tache Led 182 183 183 typedefstruct Led_s {184 struct Led_s { 184 185 int timer; // numéro du timer pour cette tâche utilisé par WaitFor 185 186 unsigned long period; // periode de clignotement 186 187 int pin; // numéro de la broche sur laquelle est la LED 187 188 int etat; // etat interne de la led 188 } Led_t;189 190 void setup_Led( Led_t* ctx, int timer, unsigned long period, byte pin) {189 }; 190 191 void setup_Led( struct Led_s * ctx, int timer, unsigned long period, byte pin) { 191 192 ctx->timer = timer; 192 193 ctx->period = period; … … 197 198 } 198 199 199 void loop_Led( Led_t* ctx) {200 void loop_Led( struct Led_s * ctx) { 200 201 if (!waitFor(ctx->timer, ctx->period)) return; // sort s'il y a moins d'une période écoulée 201 202 digitalWrite(ctx->pin,ctx->etat); // ecriture … … 205 206 //--------- definition de la tache Mess 206 207 207 typedefstruct Mess_st {208 struct Mess_st { 208 209 int timer; // numéro de timer utilisé par WaitFor 209 210 unsigned long period; // periode d'affichage 210 211 char mess[20]; 211 } Mess_t;212 213 void setup_Mess( Mess_t* ctx, int timer, unsigned long period, const char * mess) {212 } ; 213 214 void setup_Mess( struct Mess_s * ctx, int timer, unsigned long period, const char * mess) { 214 215 ctx->timer = timer; 215 216 ctx->period = period; … … 218 219 } 219 220 220 void loop_Mess( Mess_t*ctx) {221 void loop_Mess(struct Mess_s *ctx) { 221 222 if (!(waitFor(ctx->timer,ctx->period))) return; // sort s'il y a moins d'une période écoulée 222 223 Serial.println(ctx->mess); // affichage du message … … 280 281 enum {EMPTY, FULL}; 281 282 282 typedef struct mailbox{283 struct mailbox_s { 283 284 int state; 284 285 int val; 285 } mailbox_t;286 287 mailbox_tmb0 = {.state = EMPTY};286 }; 287 288 struct mailbox_s mb0 = {.state = EMPTY}; 288 289 289 290 void loop_T1(... mailbox_t * mb ...) {