Pages: [1]   Go Down
Author Topic: truc bizarre  (Read 374 times)
0 Members and 1 Guest are viewing this topic.
SCY CHAZELLES
Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour à tous,

voilà, j'ai un projet de générateur HF à base de DDS 9851,
j'utilise une mega avec un shield lcd+ 5 boutons de chez DFROBOT,
j'en suis à la navigation dans un menu et je rencontre des problèmes.

Pour info, les boutons sont en série avec un pont résisitif et sont connectés à l'entrée ADC0 de la mega.
gros avantage on ne mobilise qu'une seulre entrée pour 5 boutons,
cependant j'utilise pour la lecture switch et case, cela fonctionne correctement sauf à un endroit, voir le code joint,
loop est le début et ne sert qu'a la sélection de fonctions de base: géné pour générateur simple,
sweep pour un géné tracking et calib pour la calibration. pour l'instant seule la fonction géné est écrite,
lorsque que l'on fait ce choix, on bascule sur un sous menu ou l'on gère un curseur qui permet de modifier la fréquence du dds.
l'appui sur btnSelect permet de sortir de la boucle de la fonction géné, et le problème semble le scanning de ce bouton, j'ai essayé également avec une clause IF à la place de case mais même problème la boucle est parcourue une seule fois et ensuite exit et retour à loop, je comprends pas :-(
si je commente le case spécifique à btnSelect ou le IF, pas de pbroblèmes, j'arrive a utiliser les boutons de nav pour modifier la fréquence, par contre bien évidémment je ne retourne pas au menu principal.
Si quelqu'un avait une idée ou pouvait me dire ou je pêche ce serait fb,
le code est attaché
Cordialement,
Jacques

* test_progmem.zip (3.18 KB - downloaded 5 times.)
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3448
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le même bouton fait passer du menu principal au menu secondaire et permet aussi de quitter le menu secondaire.
Il faudrait tester le relâchement du bouton lorsque tu entres dans le menu secondaire avant de faire le premier read_LCD_buttons(); idéalement avant le do de la boucle de lecture du bouton.
Logged

SCY CHAZELLES
Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci fdufnews,

j'ai compris mon problème,
la clause delay doit se trouver avant l'appel du sous menu,
sinon effectivement mon doigt n'est pas assez rapide par rapport à la vitesse de la méga  smiley-mr-green
j'ai solutionné le problème en déplaçant la ligne concernée avant l'appel au sous-menu.
tout fonctionne maintenant parfaitement bien
encore un grand merci, c'est toujours des petit trucs comme ça qui te plantent et te mangent du temps hi
Bonne soirée
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3448
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
la clause delay doit se trouver avant l'appel du sous menu,
Ce n'est pas sûr de jouer sur les délais. Il est de loin préférable de faire une boucle avec un analogRead() pour attendre le relâcher du bouton avant de continuer. Comme ça si l'utilisateur laisse le doigt sur le bouton il n'y a pas de problème. Sauf évidemment si tu as l'intention de gérer des appuis longs et des appuis courts.
Logged

SCY CHAZELLES
Offline Offline
Newbie
*
Karma: 1
Posts: 29
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hi ,

justement j'étais entrain de modifier le code en conséquence, du moins pour cette touche là, pour les touches up,down,left & right, ce n'est pas la même chose car je veux laisser la possibilité du repeat, défilement des valeurs
merci encore des suggestions,
cordialement,
Jacques
Logged

Pages: [1]   Go Up
Jump to: