Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1708 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  277  278  279  280  281  282
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°466204
Ivanovitch
I ARE VERY SKILL
Posté le 10-04-2025 à 00:25:04  profilanswer
 

Reprise du message précédent :

froggycorp a écrit :

un string c'est une suite de byte, donc s'il peut passer une suite de byte en parametre, il devrait pouvoir passer une suite de type {1,2,3}

 
rat de combat a écrit :

Visiblement le C n'est pas fichu ainsi. :o

 

Si, c'est possible en utilisant une compound-litteral (une feature introduite en C99):

 
Code :
  1. void func(int* a)
  2. {
  3.    printf("a[0] = %d \na[1] = %d", a[0], a[1]);
  4. }
  5. int main()
  6. {
  7.     func( (int[]){10, 11} );
  8. }
 

La clé est le "cast" (les parens) autour du type avant la liste d'init.

 

edit: testé sur ardunio ide, en effet avec ce compilo moyen ageux il veux pas.
Il traite en erreur ce qui ne devrait etre qu'un warning (et encore...) "taking address of temporary array"
 [:mikdespe1]

Message cité 2 fois
Message édité par Ivanovitch le 10-04-2025 à 00:37:05
mood
Publicité
Posté le 10-04-2025 à 00:25:04  profilanswer
 

n°466211
froggycorp
Posté le 10-04-2025 à 08:07:59  profilanswer
 

haaaaaaaaaaaaaaa :)

n°466216
rat de com​bat
attention rongeur méchant!
Posté le 10-04-2025 à 10:20:37  profilanswer
 

On apprend tout les jours. :jap:

 

Concernant le compilateur, faut pas lui dire d'utiliser le C99? -std=c99 ou du genre de mémoire.


Message édité par rat de combat le 10-04-2025 à 10:20:49
n°466223
froggycorp
Posté le 10-04-2025 à 11:47:05  profilanswer
 

STM32, il y a des trucs excellents, d'autres ...
Pour réveiller le CPU en deep sleep (ultra low power mode), on peut utiliser entre autre le RTC avec un IRQ spécial (contrairement à l'arduino ou c'est une modification du watchdog).
Pour ce faire , soit un oscillateur externe, soit un oscillateur externe standard 32,768KHz soit un oscillateur interne.
Il n'est pas calibrable et a une frequence typique de 38Khz avec ... min 26Khz et max 56Khz :D

n°466268
rat de com​bat
attention rongeur méchant!
Posté le 10-04-2025 à 22:27:54  profilanswer
 

Ivanovitch a écrit :

edit: testé sur ardunio ide, en effet avec ce compilo moyen ageux il veux pas.

Tu as testé pour quel µC? Si c'est AVR alors leur truc n'est pas à jour. :o Avec avr-gcc (GCC) 5.4.0 (dont le (c) est de 2015!) sur mon système j'arrive à compiler ton exemple (et sans warnings avec -Wall -Wextra).


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°466269
rat de com​bat
attention rongeur méchant!
Posté le 10-04-2025 à 22:33:21  profilanswer
 

froggycorp a écrit :

STM32, il y a des trucs excellents, d'autres ... [...]

Bah t'as qu'à y coller un NE555 pour réveiller ton STM. :o :o
 
Sérieusement, ça doit être dû à des contraintes technologiques, mais j'ignore les détails... Je me souviens juste vaguement qu'il est très difficile de créer une "résistance" silicium avec une valeur exacte, par contre la déviation entre différentes "résistances" sur un même wafer sera très faible. C'est peut-être un oscillateur RC en interne dans ton STM?
 
En même temps un 32,768kHz c'est pas cher et pas grand (mais ça occupe deux broches).


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°466273
Ivanovitch
I ARE VERY SKILL
Posté le 10-04-2025 à 22:56:45  profilanswer
 

rat de combat a écrit :

Tu as testé pour quel µC? Si c'est AVR alors leur truc n'est pas à jour. :o Avec avr-gcc (GCC) 5.4.0 (dont le (c) est de 2015!) sur mon système j'arrive à compiler ton exemple (et sans warnings avec -Wall -Wextra).


 
2.3.3 de 2024, pour un mkr-zero, pas si vieux donc...
 
je l'update pas c'est dans une vm pour un truc legacy bien moisi que j'ai au taff,  
tous mes autres "vrais" micros sont en gcc/iar en C17  [:smogl]  

n°466274
rat de com​bat
attention rongeur méchant!
Posté le 10-04-2025 à 23:00:57  profilanswer
 

Je parlais de la version de avr-gcc qui tourne en arrière-plan (si on compile pour AVR). :o J'ai pas le truc Arduino installé et pas envie de démarrer une VM (et télécharger inutilement)...

Message cité 1 fois
Message édité par rat de combat le 10-04-2025 à 23:01:36

---------------
Ne laissez pas mourir vos sujets en cours de route!
n°466275
froggycorp
Posté le 10-04-2025 à 23:20:00  profilanswer
 

J'ai le cablage sur mon PCB mais flemme ;)
Ensuite c'est pour du "deep sleep", si c'est 8mn au lieu de 10mn, ca devrait aller.
 
---------
Sous platformio :
avr-g++ (GCC) 7.3.0
avr-gcc (GCC) 7.3.0

n°466276
Ivanovitch
I ARE VERY SKILL
Posté le 10-04-2025 à 23:30:23  profilanswer
 

rat de combat a écrit :

Je parlais de la version de avr-gcc qui tourne en arrière-plan (si on compile pour AVR). :o J'ai pas le truc Arduino installé et pas envie de démarrer une VM (et télécharger inutilement)...

 

pas avr gcc, c'est arm-none-eabi-g++ et ardunio ide le met en -std=gnu++11, du coup les compound-litterals C il aime pas  :)

 

un workaround c++ compliant serait: func(new int[2]{10, 11}); mais ca sucks, ca cache un malloc-like derrière donc faut le free/delete après  :pfff:

 

et du coup on est loin de la souplesse de la compound litteral sur stack du C. Donc le plus simple est... de revenir a une classique var intermédiaire  [:otourne]

 

damn you ardunio !

 


Message édité par Ivanovitch le 10-04-2025 à 23:31:32
mood
Publicité
Posté le 10-04-2025 à 23:30:23  profilanswer
 

n°466279
rat de com​bat
attention rongeur méchant!
Posté le 11-04-2025 à 09:21:45  profilanswer
 

Arf, désolé, c'était pas mon jour hier... :(
 
Après peut-être on peut changer le "mode" (std) du GCC quelque part dans l'interface Arduino? :??:  
 
Enfin bon, j'ai appris un nouveau truc. :jap:


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°466288
froggycorp
Posté le 11-04-2025 à 13:42:16  profilanswer
 

Je crois que oui. Le problème des parametres de compilation, c'est quand tu veux distribuer ton code

n°466322
froggycorp
Posté le 12-04-2025 à 16:08:29  profilanswer
 
n°466369
rat de com​bat
attention rongeur méchant!
Posté le 13-04-2025 à 12:42:59  profilanswer
 

froggycorp a écrit :

Je crois que oui. Le problème des parametres de compilation, c'est quand tu veux distribuer ton code

C'est en effet un bon point. Perso je distribue du code (sans Arduino et sous un autre pseudo que je ne donnerai pas) et je fais attention à toujours préciser les paramètres de compilation. Y'a rien de plus chiant que de se retrouver avec pleins de fichiers et ne pas savoir comment en faire un truc "qui tourne"...


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°467723
froggycorp
Posté le 09-05-2025 à 10:28:38  profilanswer
 

Hola,

 

Petite question d'organisation de code. J'ai une lib SPI pour plusieurs architectures.

 

Actuellement, dans les appels de libs, je définit l'architecture à utiliser, est-ce que je peux le definir dans le .h de base. Example :

 
Code :
  1. Actuellement :
  2. prog.h :
  3. #if defined(archi1)
  4.     #include <SPI_ARCH1.h>
  5. [...]
  6. #elif defined(archi2)
  7.     #include <SPI_ARCH2.h>
  8. [...]
  9. #endif
  10. SPI_ARCH1.cpp :
  11. #include <SPI_ARCH1.h>
  12. SPI_ARCH2.cpp :
  13. #include <SPI_ARCH2.h>
  14. L'objectif :
  15. prog.h :
  16. #include <SPI.h>
  17. SPI.h :
  18. #if defined(archi1)
  19.     #include <SPI_ARCH1.h>
  20. [...]
  21. #elif defined(archi2)
  22.     #include <SPI_ARCH2.h>
  23. [...]
  24. #endif
  25. SPI_ARCH1.cpp :
  26. #include <SPI.h>
  27. SPI_ARCH2.cpp :
  28. #include <SPI.h>
 

Sauf que forcément, il ne sait pas vers quel .cpp pointé. Il y a moyen de le faire via le header ? Ou de faire un truc comme :

 
Code :
  1. SPI_ARCH1.cpp :
  2. #if defined(arch1)
  3. #include <SPI.h>
  4. [code]
  5. #endif
  6. SPI_ARCH2.cpp :
  7. #if defined(arch2)
  8. #include <SPI.h>
  9. [code]
  10. #endif
 

Ou alors je créé un .cpp de type :

Code :
  1. SPI.cpp :
  2. #if defined(archi1)
  3.     #include <SPI_ARCH1.cpp>
  4. [...]
  5. #elif defined(archi2)
  6.     #include <SPI_ARCH2.cpp>
  7. [...]
  8. #endif
 

Mais cela me semble pas forcément ultra propre :D


Message édité par froggycorp le 09-05-2025 à 10:36:25
n°467864
rat de com​bat
attention rongeur méchant!
Posté le 11-05-2025 à 23:34:17  profilanswer
 

Si c'est toujours d'actualité tu peux toujours regarder comment les lib' Arduino "propres" sont fichues, p.ex. celles de chez Adafruit. Je suis trop fatigué la pour lire. :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°467905
froggycorp
Posté le 12-05-2025 à 15:30:56  profilanswer
 

Ardafruit, leur code est parsemé de #if def(archi1), je trouve cela illisible

n°467906
rat de com​bat
attention rongeur méchant!
Posté le 12-05-2025 à 15:41:45  profilanswer
 

Quand on parle preprocesseur en C ça devient très vite illisible, mais y'a pas 36 solutions et c'est souvent un vrai casse-tête... Honnêtement je n'ai pas de réponse ultime non plus sur ce coup. :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°467925
froggycorp
Posté le 12-05-2025 à 19:58:44  profilanswer
 

Au final, j'ai créé un "faux" .cpp qui #include le bon .cpp

 

Sinon, ca ouvre des tickets sur GitHub, pour wiringPi (raspberry) qui est la lib principale de gestion de GPIO (en tout cas la plus référencé), il y a des fonctions définies dans le .h mais qui derrière n'existe pas :D


Message édité par froggycorp le 12-05-2025 à 22:36:16
n°475367
fredo3
Posté le 25-09-2025 à 18:40:47  profilanswer
 

Hello
 
Des experts en lib LVGL par ici?
 
J'ai utilisé SquareLine Studio pour pondre du code C pour la lib LVGL v9.1.
 
Malheureusement, j'arrive pas à faire fonctionner la lib LVGL en version 9.1 sur mon kit Waveshare ESP32-P4 + LCD 10.1".
J'utilise la version v9.3 que propose Waveshare et qui marche avec leur exemple.
 
Question :o
Est-ce que du code pour LVGL v9.1 serait incompatible avec la version v9.3?
 
Je pose la question car j'ai un écran noir avec mon projet :/

n°475382
froggycorp
Posté le 25-09-2025 à 21:03:42  profilanswer
 

Possiblement oui ? :D
 
Test un truc simple, genre juste un texte ?  
 
(cela me fait penser que j'ai un truc comme cela qui traine dans un tiroir qu'il faudrait que je test)

n°475406
fredo3
Posté le 26-09-2025 à 12:33:59  profilanswer
 

froggycorp a écrit :


Test un truc simple, genre juste un texte ?  


Bonne idée :jap:
 
Avec un truc simple ca marche :love: , sauf le touch je remarque, mais ça je verrai après.
 
Bon par contre avec mon design j'ai soit un écran noir, soit, en réduisant le nombre de composant, un "Core  1 panic'ed...".
Bref SquareLine Studio est pas mal bugué :/
 
Vais tester EEZ Studio.
 
EDIT:
Bon en faisant un mix de fichiers entre le projet qui marche et celui qui ne marche pas, j'arrive à afficher quelque chose.
Bref c'est bien SquareLine qui chie quelque part :/
 
https://rehost.diberie.com/Picture/Get/f/435645


Message édité par fredo3 le 26-09-2025 à 14:47:23
n°475444
fredo3
Posté le 26-09-2025 à 18:26:00  profilanswer
 

Je crois que mon ESP32-P4 n'a pas assez de mémoire.
Ou plutôt la lib LVGL n'utilise sans doute pas la PSRAM de 32Mo.

 

Maintenant la question est de savoir s'il y a moyen de configurer LVGL pour qu'il utilise la PSRAM de l'ESP :/

 

EDIT:
Seulement 56.3KB dispo????

 

https://rehost.diberie.com/Picture/Get/f/435761

 

EDIT 2:
Ah c'est bon, ça se paramètre dans le fichier de config de LVGL. Je suis redescendu à 30% d'utilisation.

 

Cool tout marche :D


Message édité par fredo3 le 26-09-2025 à 20:21:13
n°475925
fredo3
Posté le 04-10-2025 à 15:14:54  profilanswer
 

Quelqu'un ici aurait déjà utilisé la lib ModbusMaster?
 
J'ai mon écran qui freeze quand la requête échoue. (chose qu'il ne devrait pas faire justement)

n°476119
fredo3
Posté le 07-10-2025 à 16:50:21  profilanswer
 

Holy shit
 
Qualcomm acquires Arduino
https://www.cnx-software.com/2025/1 [...] brain-sbc/


Message édité par fredo3 le 07-10-2025 à 16:50:44
n°476120
rat de com​bat
attention rongeur méchant!
Posté le 07-10-2025 à 17:00:00  profilanswer
 

Qualcomm c'est pas parmi ceux qui ne fournissent jamais de doc (sans NDA) ou je confond? :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476121
Natopsi
☄️Just end it already!☄️
Posté le 07-10-2025 à 17:01:25  profilanswer
 

C'est broadcom les avares de doc je crois  :D


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°476128
crazytiti
http://crazytiti.free.fr/
Posté le 07-10-2025 à 17:29:46  profilanswer
 

Je ne comprends pas trop le mouv ?
Arduino ça représente les DIYers
Qualcomm c'est un géant de la télécommunication.
A part dans une éventualité de brancher les petits jeunes via arduino pour qu'après ils demandent du matos qualcomm quand ils deviendrons ingé ?


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°476132
rat de com​bat
attention rongeur méchant!
Posté le 07-10-2025 à 17:47:13  profilanswer
 

A mon avis c'est qu'on peut faire du fric avec Arduino, c'est tout. capitalism at its best. :(

 

PS: Non je ne suis pas communiste ou autre.


Message édité par rat de combat le 07-10-2025 à 17:47:46

---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476140
fredo3
Posté le 07-10-2025 à 20:45:31  profilanswer
 

J'aime pas ça perso. Me demande si Expressif va toujours autant soutenir le truc. On verra.

 


Sinon j'ai un problème de "corrupt heap" sur une tache créée avec la commande xTaskCreate.

 

Le truc que je ne comprends pas c'est que le MCU reset automatiquement au boot, au moins 10 fois, mais à la 11 le programme se met à marcher.
Comment c'est fucking possible?!?
S'il reset il doit se retrouver à chaque fois au même état initial, pourquoi à la x-ième fois il marche?

Message cité 1 fois
Message édité par fredo3 le 07-10-2025 à 20:48:59
n°476141
froggycorp
Posté le 07-10-2025 à 20:47:44  profilanswer
 

Entre le capitalisme et le communiste, il y a quand même un large éventail de possibilité ;)
Est-ce que c'est vraiment mauvais ? Ou dit autrement, est-ce que beaucoup achète du 100% arduino et non des montages AVR équivalents ?

n°476142
Natopsi
☄️Just end it already!☄️
Posté le 07-10-2025 à 20:47:52  profilanswer
 

fredo3 a écrit :

S'il reset il doit se retrouver à chaque fois au même état initial, pourquoi à la x-ième fois il marche?


Parce-qu'une interruption n'arrive pas exactement au même moment par rapport à une autre interruption donc par miracle ça passe?  :whistle:

Message cité 1 fois
Message édité par Natopsi le 07-10-2025 à 20:48:22

---------------
ACH/VDSHFRCoin◈1435mm⚡
n°476144
fredo3
Posté le 07-10-2025 à 20:49:47  profilanswer
 

Natopsi a écrit :


Parce-qu'une interruption n'arrive pas exactement au même moment par rapport à une autre interruption donc par miracle ça passe?  :whistle:


oh ben purée [:tinostar]

 

Quelle est la procédure à suivre pour découvrir d'où vient ce problème de corrupt heap?  :sweat:  

 

J'ai checké mes ps_malloc() et les free(), aucun problème de ce côté là pourtant.

 

edit:
ayait j'ai trouvé, saleté de char :D


Message édité par fredo3 le 07-10-2025 à 22:16:28
n°476215
rat de com​bat
attention rongeur méchant!
Posté le 08-10-2025 à 17:15:18  profilanswer
 

froggycorp a écrit :

Entre le capitalisme et le communiste, il y a quand même un large éventail de possibilité ;)

Bien sûr, mais on est pas sur le sujet politique ( :cry:  :kaola: ), heureusement...

froggycorp a écrit :

Ou dit autrement, est-ce que beaucoup achète du 100% arduino et non des montages AVR équivalents ?

C'est un point important. Perso je me fiche un peu d'Arduino, je n'utilise ni le soft ni les boards (officiels ou clones), mais pour beaucoup de gens ça serait dommage ou pire si Arduino "coule" dans un sens ou un autre (notamment blobs etc, voir le message de 404 Not Found sur blabla). Faut pas oublier aussi que Arduino, bien que critiquable sur certains aspects, a certainement permis à pas mal de gens à s'initier à la prog / l'électronique / les deux mélangés et a dû ouvrir la voie vers des études pour certains p.ex. Donc si ça "coule" c'est quand même disons embêtant.


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476226
crazytiti
http://crazytiti.free.fr/
Posté le 08-10-2025 à 19:38:15  profilanswer
 

Oui, pour moi Arduino c'est le truc qui a permis à des pâtissiers des musiciens et n'importe qui d'un poil débrouillard de faire de l'électronique a grand coup de copier coller.
C'est (c'était ?) la meilleure plateforme de vulgarisation :bounce:


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°476274
fredo3
Posté le 09-10-2025 à 17:03:01  profilanswer
 

Il y a un topic freeRTOS??
J'en chie avec mes tasks concurrentes.
 
(Je savais pas que les ESP32 sous Arduino carburaient à ça)

n°476275
rat de com​bat
attention rongeur méchant!
Posté le 09-10-2025 à 17:04:13  profilanswer
 

J'ai pas connaissance d'un tel sujet, mais si c'est caché sous la couche Arduino on peut en parler ici non? (Après perso je serai pas d'une grande aide je crains. :o )


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476278
fredo3
Posté le 09-10-2025 à 17:52:19  profilanswer
 

:jap:

 

Alors avec freeRTOS, la fonction loop doit rester vide. Tout se passe dans les tasks.

 

Tout marchait plus ou moins bien, jusqu'à qu'à ce que je rajoute une task bidon qui ne fait rien d'autre que faire appel à la RTC et au besoin NTP et rafraîchir l'heure à l'écran.

 

J'ai une task, la principale d'ailleurs, celle qui rafraîchit presque la totalité des données à l'écran qui passe en état "ready" au lieu de "running" alors qu'elle tournait normalement jusque là.

 

Alors j'ai cherché sur le net pour savoir pourquoi elle était en état ready.
Ca dit que la tache est affamée, dit d'une autre manière le scheduler ne lui donne pas la main.
Pourtant même en lui donnant une priorité plus haute rien ne change.

 

Bref je comprends plus rien :o

 

edit:
Et si je détecte qu'elle est en état "ready" et tente de la supprimer pour en démarrer une autre, ca me pond un Exception was unhandled + blue screen + reboot.


Message édité par fredo3 le 09-10-2025 à 18:15:05
n°476279
rat de com​bat
attention rongeur méchant!
Posté le 09-10-2025 à 18:23:06  profilanswer
 

J'ai très peu de connaissances en RTOS :o , mais j'ai un vague souvenir qu'il y a différent types de scheduler. Peut-être ta tâche "bidon" prend trop de temps? Ou alors une histoire de ressources partagées, genre le bus SPI qui est partagé entre les deux tâches? Dans ce cas il faut prendre des précautions, des "mutex".


Message édité par rat de combat le 09-10-2025 à 18:23:21

---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476281
crazytiti
http://crazytiti.free.fr/
Posté le 09-10-2025 à 19:14:36  profilanswer
 

+1 pour en parler ici j'ai toujours considéré le topic "arduiino" comme étant plutot dédié à l'entraide et l'échange éventuellement sur un arduino...
De toute façon on peut utiliser du code arduino sur un µc type arduino en dehors d'une carte arduino ou alors utiliser une carte arduino sans l'ide arduino donc ...
 
Bref je penche aussi pour el fait que ta tache bidon consomme trop de temps, mets des log avec timestamp.


---------------
Le PC est une drogue... Téléchargez mes modèles 3D pour que j'ai du filament gratuit :-D https://www.printables.com/fr/@Crazytiti_1456354
n°476283
fredo3
Posté le 09-10-2025 à 19:32:58  profilanswer
 

Vais réduire le nombre de taches je crois pour éviter autant que possible le problème d'accès aux resources commune.
 
Les mutex, sémaphores and co c'est vraiment pas ma tasse de thé :s

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  277  278  279  280  281  282

Aller à :
Ajouter une réponse
 

Sujets relatifs
* Réparations de vos appareils électroniques & electromenager * 
Plus de sujets relatifs à : [arduino] Topic Unique blabla @ Arduino


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)