j'ai un programme qui est cappable chaque tour du ventilateur, nous passons 2
fois devant un aimant, l'interrupteur ILS se
ferme et nous avons un niveau '0' (OV) en
sortie ILS sinon quand l'interrupteur n'est pas
devant un aimant il est ouvert et le +5V arrive à
la sortie ILS à travers la résistance R
(résistance de tirage vers le haut ou pull-up)
Bilan :nous avons 2 impulsions en sortie d'ILS à
chaque tour du ventilateur.
SVP qui m'aide pour reparer les erreur#define __16f628
#include <16F628.h>
#use delay(clock=20000000)
#define PORTA 0x05
#define PIR1 0x0C
#define T1CON 0x10
#define CCP1CON 0x17
#define CCPR1L 0x15
#define CCPR1H 0x16
#define CCP1IF PIR1,2
typedef union { // permet de passer de 2 octets ŕ un entier 16
struct {
int8 o0; //* octet poids faible */
int8 o1; //* octet poids fort */
};
int8 e; // entier 16 bits
}e2o_t;
e2o_t e2o;
#define oct0 e2o.o0
#define oct1 e2o.o1
#define ent e2o.e
int capture(void) // lecture du CCPR1 aprčs un front montant sur CCP1
{
oct0=CCPR1L; // lecture poids faible du CCPR1 (= TIMER1 lors du front montant de CCP1)
oct1= CCPR1H; // lecture poids fort du CCPR1
CCP1IF=0; //acquittement lecture CCPR1 pour attente nouveau front
return ent;
}
void init() //init Timer1 en mode Capture
{
T1CON=0x01; //Quartz =4Mhz, prediviseur par 1 temps cycle TIMER1 = 1Ęs
CCP1CON=0x05; // mode capture front montant
CCP1IF=0; // CCP1IF passe a 1 avec le front montant du fil jaune du ventilo
}
void main (void)
{
int16 valm2,valanc,valnv,Tm; //variables de type entier 16 bits
init(); // init Timer Capture
while (!CCP1IF) ; // attente front montant sortie ILS ventilo
valm2=capture(); //front 1
while (!CCP1IF) ; // attente front montant sortie ILS ventilo
valanc=capture(); //front 2
while (1) { //boucle sans fin
if (CCP1IF) {//si front montant sortie ILS ventilo
valnv=capture(); //front 3
Tm =valnv-valm2; //Tm = temps front3-front1(temps d'un tour)
putint(Tm); // envoie en ascii sur liaison série du temps Tm
putchar(0x0a); // fin de ligne
valm2=valanc; //front 2 devient front 1
valanc=valnv; //front 3 devient front 2
}
}
}
et merci d'avance
-----