coco
je ss nouvelle sur ce forum, et je compte vraiment sur vous pour aider
je dois réaliser un projet ou je doit faire une conversion par le PIC16F877 de six tension sachant que le signal que j'ai et alternatif carré de seuil 10. le problème qui ne fait qu'une seul conversion à la fois
mé d'aprés les petit connaissance que je viens d'acquérir il est d'hôte d'un multiplexeur je sé pa comment résoudre ce problème j'ai trouvé qlq exemple mé ne traite que le cas d'une seul entrée or moi j'ai six comme je vous ai dit
voila l'exemple que j'ai trouvé aider moi à le développer par ce que je viens de découvrir le monde des pic et mes connaissances sont trop limitées merci à vous
can.c :
#define PIC_CLK 2000000
#include <pic16f877.h>
unsigned int at 0x2007 __CONFIG = (_CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_OFF & _CPD_OFF);
// récupere le AN0
unsigned int readAN0(void)
{
char cT=6; // ah ah
unsigned int iValAD=0;
ADON=1; // activation du convertisseur
while(cT--); // tempo de 23µs
GO_DONE=1; // démarrage conversion
while(GO_DONE); // si ADGO passe à 0 fin de conversion
iValAD=ADRESH;
iValAD<<=8;
iValAD|=ADRESL; // le résultat est contenu dans iValAD
ADON=0; // convertisseur arrêté
return iValAD;
}
void main (void){
TRISA=255; //Port A en entrées
TRISB=0; //Port B en sortie (leds rouges)
//Init du convertisseur ana/numerique
ADCS1=1; ADCS0=0; // Fosc 32
CHS2=0; CHS1=0; CHS0=0; // sélection de l'entrée analogique RA0
PCFG3=1; PCFG2=1; PCFG1=1; PCFG0=0;
ADFM=1; // justification bit à droite registre de réception ADRESH ADRESL
// boucle a la con
while (1){
PORTB=readAN0()>>2; // Rien a battre des 2 poids faible, puis sinon ca déborde
}
}
merci pour votre aide c urgent
-----