Probleme programme et lcd interaction boutons.

Pour toutes vos questions sur CodeVision et la programmation en C en général

Modérateur: Modérateur

Probleme programme et lcd interaction boutons.

Messagede Poisson le 23 Fév 2007 10:54

Code: Tout sélectionner
#include<mega163.h>
#include<delay.h>
#include<lcd_V3.h>
#include<INOUT.h>
void message_config()
{
   lcd_clear();
   lcd_putsf("Configuration ?");
}


void main()
{       
   double configun=0;
   double configdeux=0;
   lcd_init();
   DDRA.1=0;
   DDRA.3=0;
   PORTA.1=0;
   PORTA.3=0;     
   configun=PINA.1;
   configdeux=PINA.3;
   
   
   message_config();

   
if (configun == 1)
{   
   lcd_clear();
   lcd_putsf("Ca marche 1");
}
else if (configdeux == 1)
{
   lcd_clear();
   lcd_putsf("Ca marche 2");
}
}


Nous essayons d'interagir avec 2 boutons sur l'écran lcd pour que quand on appuie sur le premier il affiche "ca marche 1" et quand on appuie sur le deuxieme il marque " ca marche 2" mais cela ne fonctionne pas, pourriez vous nous aider?
Poisson
 

Messagede lamygale le 23 Fév 2007 16:19

Premiere question : est ce que vous réussissez à ecrire sur le LCD ?

Seconde question : Il manque pas un petit while(1){ je teste mes boutons } apres le message_config() ;) ?

P.S. je ne connaissais pas le DDRA.1 = 0, ca remplace bien un DDRA = DDRA & 0xfe ?
La vie est une maladie mortelle sexuellement transmissible ;-)
lamygale
REGULIER
REGULIER
 
Messages: 116
Inscription: 11 Juin 2005 19:27
Localisation: Bordeaux - ENSEIRB - EirBot

Messagede nanick le 23 Fév 2007 16:50

bonjour,
il manque éffectivement un while(1) pour scruter les bouton.
Je pense que c'est mieux de mettre porta.1=1 et porta.3=1 pour activer les résistances pull up internes.
COMME CI-DESSOUS voir aussi pour insèrer un delai;

Code: Tout sélectionner
PORTA.1=1.
PORTA.3=1.

while(1)
{
   configun=PINA.1;
   configdeux=PINA.3;
   
   
   message_config();

   
if (configun == 1)
{   
   lcd_clear();
   lcd_putsf("Ca marche 1");
}
else if (configdeux == 1)
{
   lcd_clear();
   lcd_putsf("Ca marche 2");
}
mettre ici un petit delai quand même
}

A+;
nanick
HABITUE
HABITUE
 
Messages: 70
Inscription: 28 Mai 2006 12:53

Messagede Poisson le 16 Mar 2007 9:03

Merci pour votre aide je vais essayer :-D
Poisson
 

Messagede Poisson le 16 Mar 2007 9:24

On arrive a ecrire sur le lcd oui mais avec les boutons ca ne fonctionne toujours pas qu'entendez vous "il manque éffectivement un while(1) pour scruter les bouton. "
merci
Poisson
 

Messagede Poisson le 16 Mar 2007 10:22

Code: Tout sélectionner
#include<mega163.h>
#include<delay.h>
#include<lcd_V3.h>
#include<INOUT.h>
void message_config()
{
   lcd_clear();
   lcd_putsf("Configuration ?");
}


void main()
{       
   double configun=0;
   double configdeux=0;
   lcd_init();
   DDRA.1=0;
   DDRA.3=0;     
   configun=PINA.1;
   configdeux=PINA.3;
   PORTA.1=1;
   PORTA.3=1;
   message_config();

while(1)
{
   configun=PINA.1;
   configdeux=PINA.3;
   

   
if (configun == 0)
{   
   lcd_clear();
   lcd_putsf("");
}
else if (configdeux == 0)
{
   lcd_clear();
   lcd_putsf("Config2");
}
}
}


Finalement ca marche en faisant comme ça, merci beaucoup
Poisson
 


Retourner vers CodeVision AVR

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron