Programme en c pour pic16f877

Résolu
cs_kholiyos Messages postés 7 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2010 - 18 déc. 2009 à 20:18
cs_kholiyos Messages postés 7 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2010 - 20 déc. 2009 à 15:32
kholiyos
je suis en train de faire un programme en c qui fait allumer un diode liée au port b0 du pic si seulement si la bouton liée au port d0 est actionée mais malheureusement ça marche pas aider mois svp voici mon code:
#include <16f877.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=40000000)
#INT_EXT
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
int button_pressed;
void initial()
{
set_tris_b(0);
set_tris_d(255);
}




// main program
void main() {

button_pressed=input_d();
if(button_pressed==0) // if button action and was not pressed
{

output_high(pin_b0);

}
else // if button action and was pressed
{

output_low(pin_b0);

}


}
merci à tous

2 réponses

cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
19 déc. 2009 à 20:01
salut,

je ne sais pas quel compilo tu utilises... mais ne dois-tu pas appeler initial() depuis main() et executer tes instructions dans une boucle infinie
genre :

void main() {
while (1)
{
button_pressed=input_d();
if(button_pressed==0) // if button action and was not pressed
{

output_high(pin_b0);

}
else // if button action and was pressed
{

output_low(pin_b0);

}
}

sinon ton programme s'exécute dès la mise en route du pic et tu n'as pas le temps d'appuyer sur ton bouton, ni même de voir ta LED s'allumer

6co
1
cs_kholiyos Messages postés 7 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2010
20 déc. 2009 à 15:32
kholiyos
merrrrrrrrrrrci bien
ça marche
0
Rejoignez-nous