Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général en BASIC et PASCAL !

Modérateur : Gérard

Detcter un bouton avec VisualTFT
scrib
Membre
Membre
Messages : 8
Enregistré en : août 2016

#1 Message par scrib » dim. 3 déc. 2017 16:05

Bonjour à tous le forum,

Je continue mon apprentissage de VisualTFT avec le basic. J'arrive à allumer une LED avec un bouton créé sur l'écran (avec l'aide de paulfjujo). Je voudrais, maintenant, détecter l'appuie sur un bouton câble sur le port E.1, mais ça ne fonctionne pas. J'ai mis le port E en entrée grâce à la commande TRISE = 255.
Dans la procédure de détection d’appuis, voilà ce que j'ai écris:

sub procedure Detection()
If LATE.D1 then
Screen1.Color = 0x000000
DrawScreen(@Screen1)
end If
end sub.

Je n'arrive pas à trouver de doc, pour m'aider, si quelqu'un à un lien à me fournir je suis preneur.
Pouvez-vous m'aider,
Merci.

Detcter un bouton avec VisualTFT
paulfjujo
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 747
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#2 Message par paulfjujo » dim. 3 déc. 2017 17:15

bonjour,


LATE.D1 ?

en C, a syntaxe serait plutot LATE.B1 le B signifiant bit
A verifier si il n'y a pas de rebond sur le bouton !

le test aussi ???

:!!: c'est du basic ?
en C

Code : Tout sélectionner


if 
(LATE.B1==1) 
{
  Delay_ms(10); // si apres 10ms on detecte encore l'etat appuyé ,c'est OK
  if (LATE.B1==1)
  {
...
 action

  
}
}

Detcter un bouton avec VisualTFT
scrib
Membre
Membre
Messages : 8
Enregistré en : août 2016

#3 Message par scrib » dim. 3 déc. 2017 18:03

Bonjour paulfjujo et le forum,

Merci pour votre réponse, oui c'est bien du basic. C'est une erreur d'écriture de ma part sur le post, c'est bien "
if LATE.B7 = 1 then
" En basic, il n'y a qu'un seul "=". Votre solution, avec le "delay "ne fonctionne pas, la détection ne se fait pas et je ne comprends pas pourquoi. Si vous avez une autre idée, ou quelqu'un d'autre, je suis preneur.
Merci.

Detcter un bouton avec VisualTFT
paulfjujo
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 747
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#4 Message par paulfjujo » dim. 3 déc. 2017 18:21

Oups, j'ai raté le coche
pour tester une entrée , il faut lire le PORT pas la lacth de sortie

Code : Tout sélectionner

if LATE.B7 = 1 then


B7 ?
détecter l'appuie sur un bouton câble sur le port E.1

c'est pas le bit 1 du port E que tu voulais tester ?
donc

Code : Tout sélectionner


sub procedure Detection
()
If 
PORTE.B1=1 then
  Delay_ms
(10)            
   If 
PORTE.B1=1 then
    Screen1
.Color 0x000000
     DrawScreen
(@Screen1)
   
end If
 endif  
end sub.
 
...

je ne sais pas si tu as la fonction Delay_ms(10) en basic ..

Detcter un bouton avec VisualTFT
scrib
Membre
Membre
Messages : 8
Enregistré en : août 2016

#5 Message par scrib » dim. 3 déc. 2017 19:02

Merci paulfjujo,
Oui j'ai la fonction delay_ms(...). En basic, il y a les mêmes fonctions qu'en C, la différence réside essentiellement dans la manière d'écrire les procédures, et un peu la syntaxe.
Si je comprends bien :
LATE.B1 => lit la sortie du pin E1
PORTE.B1 => lit l'entrée du pin E1.
Avec les PIC16F, dont je me servais jusqu'à présent,tout se fait avec "PORTE1 = ...".
Merci pour avoir pris le temps de me répondre.

Detcter un bouton avec VisualTFT
scrib
Membre
Membre
Messages : 8
Enregistré en : août 2016

#6 Message par scrib » lun. 4 déc. 2017 08:45

Désolé pour l'erreur d’écriture sur mon post précédent (c'était le début de soiré). Il fallait lire:
LATE.B1 => écrit sur la sortie du pin E1
PORTE.B1 => lit l'entrée du pin E1.
Bonne journée.


Retourner vers « Langage BASIC & PASCAL »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité