Bonjour,
J'utilise un PIC24FJ256DA206, et je souhaiterai utiliser le module Output Compare pour faire clignoter une LED. En mode 16 bits, pas de soucis... mais je n'arrive pas à avoir une période suffisamment longue et je souhaiterai utiliser le module Output Compare en mode 32 bits et comme source le timer 2/3 (en 32 bits).
Voila ce que j'ai fais en mode 16 bits (ça fonctionne):
Mais en mode 32 bits, a priori, on travaille par paire, Timer2 et Timer3 et OC1 et OC2. Avez vous déjà fais cela?Code:int main (void) { RCONbits.SWDTEN = 0; asm volatile ("mov #OSCCON,w1 \n" "mov #0x46, w2 \n" "mov #0x57, w3 \n" "mov.b w2,[w1] \n" "mov.b w3,[w1] \n" "bclr OSCCON, #6":::"w1","w2","w3"); //RP21 = OC1 RPOR10bits.RP21R = OC1_IO; //RP21 = OC2 //RPOR10bits.RP21R = OC2_IO; asm volatile ("mov #OSCCON,w1 \n" "mov #0x46, w2 \n" "mov #0x57, w3 \n" "mov.b w2,[w1] \n" "mov.b w3,[w1] \n" "bset OSCCON, #6":::"w1","w2","w3"); OC1CON1bits.OCM = 0; OC1R = 0x7FFF; OC1RS = 0x7FFF; OC1CON1bits.OCTSEL = 0; OC1CON1bits.OCM = 0x6; PR2 = 0xFFFF; IFS0bits.T2IF = 0; IEC0bits.T2IE = 1; T2CONbits.TCKPS = 3; T2CONbits.TON = 1; while(1) { Idle(); } return 0; } void __attribute__ ((__interrupt__, no_auto_psv)) _T2Interrupt(void) { IFS0bits.T2IF = 0; }
Merci d'avance pour vos conseils!
Bonne soirée à tous
-----