Je commence à me mordre les doigts d'avoir choisis ce PIC !!! Mais maintenant c'est trop tard pour changer . Je dois donc faire l'effort !
Je n'arrive pas à comprendre le réglage du timer 1.
J'ai essayé de nombreuses combinaisons sans succés ma led test reste éteinte .
Voici le bout de code test, seulement pour faire clignoter une led toutes les 30ms pendant 30ms
Code : Tout sélectionner
#define LED_R LATC.B2 // Sortie led rouge
char i;
//##############################################################################
//------------------------ INTERRUPTION -----------------------------
void interrupt(){
if (TMR1IF_bit){
TMR1IF_bit = 0;
TMR1H = 0x15;
TMR1L = 0xA0;
LED_R = ~LED_R;
}
}
void main() {
// RAZ des broches
LATA = LATB = LATC = LATD = LATE = 0;
// registres des I/O
TRISA = 0x7F; // RA7 en sortie pour moteur
TRISC = 0xFA; // RC0 en sortie pour moteur et RC2 pour led_rouge
TRISB = TRISD = TRISE = 0xFF;
// registrse analogiques
ANSELA = ANSELB = ANSELC = ANSELD = ANSELE = 0x00;
// test de clignotement
for (i=0;i<6;i++){
LED_R = ~LED_R;
delay_ms(1000);
}
// Timer 1
TMR1IF_bit = 0; // RAZ du flag
TMR1H = 0x15; // remplissage du registre pour 30 ms
TMR1L = 0xA0;
TMR1CLK = 0b00000011; // HFINTOSC
T1CON = 0b00110001; // PRESCALER 1:8 ; RD16 = 0 ; Timer ON = 1;
TMR1IE_bit = 1; // active l'INT sur dépassement timer
INTCON.PEIE = 1; // Active les INT Periphériques
INTCON.GIE = 1; // Active toutes les INT
} Voyez vous ce qui me manque dans les réglages pour faire clignoter ma LED !
