2
volatile uint32_t counter_timer = 0;
void __USER_ISR myISR() {
 counter_timer++;
 clearIntFlag(_TIMER_3_IRQ);
}
 
void __USER_ISR myISR_timer_four() {
 clearIntFlag(_TIMER_4_IRQ);
 TMR4 = 0x16E3600;
 Serial.print("hi\n");
 if(PORTAbits.RA10 != 1){
 LATAbits.LATA10 = 1;
 }
 else{
 LATAbits.LATA10 = 0;
 }
}
 
void setup{
 
 T3CONbits.TCS = 0b0; // Timer Clock Source Select bit
 T3CONbits.TCKPS = 0b000; //0b111; // Timer Input Clock Prescale Select bits
 T3CONbits.ON = 0b1; //0;//0b1;
 asm("nop \n");
 T4CONbits.TCS = 0b0;
 T4CONbits.TCKPS = 0b000;
 T4CONbits.T32 = 0b1;
 TMR4 = 0x16E3600; // half of 48mHz.
 T4CONbits.ON = 0b1;
 
 setIntVector(_TIMER_3_VECTOR, myISR);
 setIntPriority(_TIMER_3_VECTOR, 4, 0);
 clearIntFlag(_TIMER_3_IRQ);
 setIntEnable(_TIMER_3_IRQ);
 
 setIntVector(_TIMER_4_VECTOR, myISR_timer_four);
 setIntPriority(_TIMER_4_VECTOR, 1, 0);
 clearIntFlag(_TIMER_4_IRQ);
 setIntEnable(_TIMER_4_IRQ);
 
 
 TRISAbits.TRISA10 = 0; // Fubarino onboard yellow led
}
 
void loop() {
delay(500);
Serial.println(counter_timer);
Serial.println(TMR4, DEC);
}

Hi,

i wanna use multiple interrupts, i got the information from a document i got from: Majenko Technologies. the interrupt bound to Timer3 works, this was the example code in the pdf. now i "assembled" a second interrupt bound to timer4, copy, paste and adapt, but that isn't working.

i can print the "content" of the timer4 register and it's running.

have i done something wrong? search engine didn't yield a answer.

asked Nov 23, 2022 at 19:19

1 Answer 1

1

The problem was that you need to combine the even and the next odd timer (see datasheet of the microchip pic you're using) to form a 32 bit timer.

answered Nov 25, 2022 at 11:49

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.