Actuellement sur un projet personnel sur un pic 16f684, je viens de réaliser un programme qui tourne parfaitement sur un pic 16f877 où je lie une fréquence de 0.2hz a 20Khz et je reagis à un certain seuil (de plus j'affiche la fréquence d'entrée).
Ca marche nickel
Mais voilà mon problème : je viens de passer sur un pic 16f684 et je remarque dès le démarrage qu'aucune interruption n'est générée alors rien ne marche.
Voici le bout de programme concerné :
apre la mise a jour du compilateur je n'est plus aucun souci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 __CONFIG(FCMDIS & IESODIS & BOREN & UNPROTECT & MCLRDIS & PWRTDIS & WDTDIS & HS ); void init_pic(void) { TRISA = 0x00; // configure les sorties utilisées du port A CMCON0 = 7; ANSEL = 0; TRISC = 0xFC; // configure E/S RC5==> CCP1 PORTC=0XFF; ADCON1 =0x02; OPTION=0x7F; } void init_CCP1(void) { CCP1CON=0x05; //configuration en front montent de la prise de messure INTCON= 0xC0; //autorisation generale des interuption GEI =1; PIE1=0x05; //autorisation interuption PIE1 T1CON=0x00; // } interrupt Capture(void) { RC0!=RC0; //////////////////////////////// /* Interuption debordement du timer1 */ if (TMR1IF==1) { TMR1IF=0; //mise du flag a 0 } //////////////////////////////// /* Interuption CCP */ if (CCP1IF==1) { CCP1IF=0; // remise du drapeau a 0 } } void main (void) { init_pic(); init_CCP1(); while(1); }
je suis heurreux se n'etai pas de ma faute
Partager