Je travaille sur un programme d'apprentissage de télécommande par infrarouge
J'utilise le port ICP1, qui lorsqu'il est mis au niveau haut déclenche une interruption, cela marche bien en simulation sur AVR studio en simulant une entrée sur la PINB.0 la valeur de ICR1 enregistre alors la valeur du Timer/Counter1.
Malheureusement après programmation du microcontrôleur rien ne se passe, il ne déclenche pas d'interruption sur la patte ICP1 (PINB.0).
J'ai pourtant utilisé le wizzard de CodeVision.
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
sachant que j'utilise le paramétrage suivant dans codevision
//Timer/Counter 1 initialisation
// Clock source: System Clock
// Clock value: 3684,400 kHz
// OC1A output: Discon.
// OC1B output: Discon.
// Noise canceler: Off
// Input Capture on Rising Edge
TCCR1A=0x00;
TCCR1B=0x59;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0xFF;
OCR1AH=0xFF;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x00;
ainsi que:
// Timer/Counter 1 Interrupt(s) initialisation
TIMSK1=0x20;
Quelqu'un sait-il comment je peux déclencher cette interruption?
Gestion port ICP1 sur ATméga48, programmation CodeVision
Modérateur : Modérateur