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

Poisson

Probleme programme et lcd interaction boutons.

Message par Poisson »

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?

lamygale
REGULIER
REGULIER
Messages : 115
Inscription : 11 juin 2005 19:27
Localisation : Bordeaux - ENSEIRB - EirBot
Contact :

Message par lamygale »

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 ;-)

nanick
HABITUE
HABITUE
Messages : 70
Inscription : 28 mai 2006 12:53

Message par nanick »

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+;

Poisson

Message par Poisson »

Merci pour votre aide je vais essayer :-D

Poisson

Message par Poisson »

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

Message par Poisson »

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

Répondre