Bonjour à tous,
Voila je ne vois pas ou peut venir mon erreur,
J'expliqe le fonctionnement de mon programe,
J'ai deux boutons, mais je veux que c'est bouton soit à logique séquentielle,
Alors j'ai fais un petit programme pour pouvoir allé voir les bit du port concerné et donc de réalisé cette fontion,
C'est bouton permette l'allumage du backlite du lcd et le controle du mute de mon Amplificateur Audio.
Voila mon programme
Ici le sous-programme de lecture des bite et donc de l'affection des valeurs de a et b
Ici l'affichage sur le LCDvoid cmdall_back ( unsigned char port_cmd ) // Lecture Ampli et Backlite
{
unsigned char a, b;
if ( (PINB & 0x10) == 0x10 ) // Test du bit PB5
{~b;}
else {b=b;}
if ( (PINB & 0x20) == 0x20 ) // Test du bit PB6
{~a;}
else {a=a;}
}
(il n'y a pas encore les tempo mais je les rajouterai après)
Voici le sous-programme de scrutage ci-dessousvoid Affichage_cmdb ( unsigned char b )
{
switch (b)
{
case 1 :
aff_ligne0(" AMPLI ");
aff_ligne1(" ON ");
break;
case 0 :
aff_ligne0(" AMPLI ");
aff_ligne1(" OFF ");
break;
}
}
void Affichage_cmda ( unsigned char a )
{
switch (a)
{
case 1 :
aff_ligne0(" BACKLITE ");
aff_ligne1(" ON ");
break;
case 0 :
aff_ligne0(" BACKLITE ");
aff_ligne1(" OFF ");
break;
}
}
Donc je le rapelle je travaille sous WinAVR et la j'ai tellment le nez sur mon programe depuis des jours que je fini par ne plus rien voirvoid scrutages_cmd ( unsigned char port_cmd )
{
unsigned char a, b;
do
{
a= cmdall_back(PINB);
b= cmdall_back(PINB);
Affichage_cmdb(b);
Affichage_cmda(a);
}while( (PINB & 0x30) > 0x00) ;
}
En vous remerciant de votre aide
Cordialement
Paulochon
-----