hi,
quelqu'un aurait-il pu faire fonctionner la chose ?
-> tout ce que j'ai pu glaner sur le net conduit soit à une erreur genre variable qui n'est en effet définie nulle part, ou bien quand ça compile ça fait crasher la bête qui ne peut même pas envoyer un message sur le moniteur au setup ...
Bonjour
je n'utilise pas, mais ai vu cette discussion et les pistes proposées par odudex
Crashing on ESP8266 with core 2.5.2 · Issue #40 · PaulStoffregen/Encoder · GitHub
la version acuelle (2.5.2) du moyau ESP8266/Arduino a un pb avec les interruptions.
j'ai évoqué içi[ l'ajout de l'attribut ICACHE_RAM_ATTR]([RESOLU] crash de XPT2046_Touchscreen avec esp8266 sous interruption - Français - Arduino Forum) pour corriger l'implantation des routines d'interruption
le posteur avait, lui, facilité les choses en postant le message d'erreur au boot.......
Bonjour al1fch,
merci
je regarde ça quand j'ai le temps et te rends compte
voici où j'en suis :
- le problème semble bien lié aux interruptions, car ça marche quand il n'y en a pas
- il faut choisir un baudrate de téléversement (115200 par ex.) compatible avec le moniteur, si non on ne peut pas lire les messages d'erreur si le(s) crash se produit avant le setup
- l'erreur est "rst cause:2, boot mode:(3,6)"
je suis noyé dans la trop abondante littérature sur le sujet, sans issue pour l'instant >:(
Bonsoir
sans modification de la librairie le sustème plante à chaque appel de la routine d'interruption car elle n,'a pas été implantée au bon endroit par le compilateur actuel (bug)
As tu fait la modification proposée içi (ajout de l'attribut ICACHE_RAM_ATTR) dans la librairie ?
I just added ICACHE_RAM_ATTR in front of all isr_x_ functions, like:
static void isr0(void) { update(interruptArgs[0]); }
to
static void ICACHE_RAM_ATTR isr0(void) { update(interruptArgs[0]); }[/code
les messages au démarrage sont souvent émis à 74880 bauds (en raison du quartz de 26MHz souvent monté sur les cartes en rempalcement des 40MHz prévus à l'origine avec un débit de 115200 bauds)
Reset cause : 2 = effet de l'entrée Reset.... souvent involontaire comme les creux de tension d'alimentation qui apparaissent comme des changements de niveau logique de l'entrée Reset.
le µC reboote alors sur la mémoire Flash (boot mode 6) comme si on avait appuyé sur le bouton Reset.
reset causes:
0:
1: normal boot
2: reset pin
3: software reset
4: watchdog reset
boot device:
0:
1: ram
3: flash
trimarco232:
voici où j'en suis :
- le problème semble bien lié aux interruptions, car ça marche quand il n'y en a pas
- il faut choisir un baudrate de téléversement (115200 par ex.) compatible avec le moniteur, si non on ne peut pas lire les messages d'erreur si le(s) crash se produit avant le setup
- l'erreur est "rst cause:2, boot mode:(3,6)"
je suis noyé dans la trop abondante littérature sur le sujet, sans issue pour l'instant >:(
bonsoir trimarco
Je sais que ce n'est pas en l’état satisfaisant , mais a tu vraiment/réellement besoin de passer par de l'interruption ?
la gestion des encodeurs en polling n'est pas suffisante ?
si c'est de l'encodeur utilisé juste en IHM , l'esp32 esp8266 doit être largement suffisant
bonsoir Artouste,
merci pour l'idée,
pas encore fait, car je suis en début de programme, et ne sais pas encore combien de temps prendra la boucle principale
je garde l'idée sous le coude :
- d'habitude j'évite les bibliothèques qui font tout mais rien correctement
- ici cela traite pa la même les problèmes de debouce
As tu fait la modification proposée içi (ajout de l'attribut ICACHE_RAM_ATTR) dans la librairie ?
c'était ça, bingo ! 8)
incroyable les errements dans github à ce sujet !
donc 1 karma + 1 appel général : le nombre qu'al1fch a reçu est anormalement bas