bonsoir je suis entrain de travaillais sur un projet que j'utilise une télécomande RC5 j'ai compris le principe de décodage sur 14bits je peux utiliser les timers en interruption . j'ai essayé de faire un ptit programme qui affiche le contenu des registre TMR1L et TMR1H en PORTB et PORTD mais ça fonctionne plus
unsigned char P_Faible=0 ;
unsigned char P_Fort=0 ;
void init_prog() {
TRISA = 0xFF;
PORTA = 0;
TRISB = 0X00;
PORTB = 0;
TRISC = 0xFF;
PORTC = 0;
TRISD = 0x00;
PORTD = 0;
T1CON =0x09; //* predivision tmr1 = 1 ; horloge osc/4 *// */
PIE1=0x05; //* activer l'interruption ccp1 et tmr1 *///
CCP1CON=0x04; //* mode capture à chaque front decendant*//
INTCON=0xC0;
OPTION_REG=0x00;
TMR1L = 0x00 ;
TMR1H = 0x00 ;
}
void interrupt() {
/*if(PIR1.CCP1IF){
TMR1L = P_Faible;
TMR1H = P_Fort;
delay_ms(1000);
TMR1L = 0x00 ;
TMR1H = 0x00 ;
PIR1.TMR1IF = 0 ;
PIR1.CCP1IF = 0 ;
PORTA = 1;
delay_ms(1000);
} */
if(PIR1.TMR1IF){
TMR1L = P_Faible;
TMR1H = P_Fort;
TMR1L = 0x00 ;
TMR1H = 0x00 ;
PIR1.TMR1IF = 0 ;
PORTA = 2;
delay_ms(1000);
}
}
void main() {
init_prog();
while(1){
PORTB = P_Faible ;
PORTD = P_FORT ;
delay_ms(1000);
}
}
-----