bonsoir,
dans une partie de mon projet je voudrais allumer des LED avec un 16F877 via un clavier 16 touches (relié à l'encodeur 74C922) et qui a chaque touche allume un certains nombre de diodes LED.
le programme en C :
Code:encodeur=input_b() >> 4 ; switch (encodeur) { case (0x04) : // bouton (ligne 2,colonne 1) appuyé output_high(R1) ; // LED allumée output_low(R2) ; // LED éteinte output_low(R3) ; // LED éteinte output_high(R4) ; // LED allumée break;} case (0x05) : { output_high(R1) ; output_low(R2) ; output_low(R3) ; output_low(R4) ; break;} bla, bla, bla... }
encodeur, variable de type byte, est le signal que recoit le PIC par l'encodeur
lorseque j'ai réalisé la simulation sur ISIS certainnes Diodes ne s'allumaient pas, d'autres clignotaient à une fréquence constante,et même parfois celles qui s'allumaient ne corresspondaient pas à la combinaison attendue.
d'après vous,l'erreur viedrait-t-elle de mon code au niveau de l'allumage/extinction des LED:
dois-je le changer avec output_c(0x01) par exemple??Code:output_high(R1) ; output_low(R2) ; output_low(R3) ; output_low(R4) ;
et dans ce cas quel fichier header dois-je mettre dans l'entête car mon compilateur (CCS) a ignoré l'instruction output_c() et output_d() mais a reconnu output_a() !
voici d'ailleurs l'entête de mon programme, qu'est ce qui manque d'apès vous ? :
Code:#include <16F877.h> #device adc=8 #use delay(clock=4000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #define DEM1 PIN_A0 // pin reliée au démultiplexeur #define DEM2 PIN_A1 #define DEM3 PIN_A2 #define DEM4 PIN_A3 #define A4 PIN_A4 #define A5 PIN_A5 #define R1 PIN_C0 #define R2 PIN_C1 #define R3 PIN_C2 #define R4 PIN_C3 #define LED_isol PIN_C4 #define LED_temp PIN_C5 #define C6 PIN_C6 #define C7 PIN_C7
autre chose,mon compilateur ignore aussi la commande setup_adc_ports(NO_ANALOG) , bien que j'utilise les ports A comme sorties numériques (vers un Démulitiplexeur) , bizarre , non ?
Rque : dans ce projet les LED que je voudrait allumer sont en réalité des relais , mais j'utilise des LED en simulation pour pouvoir visualiser l'exécution de ma commande .
et merci d'avance pour vos aides .
-----