This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432P401R: printf disables edge triggered interrupts

Part Number: MSP432P401R

Hi there, 

When I debug using `printf` the ISRs associated with Pin6.1 and Pin5.0 do not get triggered. However, when I comment out `printf` the ISRs work as expected. Thank you very much for your support!

void tachometer_init(void(*userTaskLeft)(void), void(*userTaskRight)(void) ){
	
	//setup the hooks for the tachometers ISRs
	taskLeft =  userTaskLeft;
	taskRight =  userTaskRight;

	// configure pin 6.1 as input and enable interrupt
	P6->SEL0 &= ~(BIT1);
	P6->SEL1 &= ~(BIT1);
	P6->DIR &= ~(BIT1);

	P6->IFG &= ~(BIT1);
	P6->IES &= ~(BIT1);  
	P6->IE |= (BIT1);  

	NVIC->IP[10] &= (NVIC->IP[10] &0xFFFFFF00 )|0x00000020;
	NVIC->ISER[1] =  1 << (PORT6_IRQn & 31);

    // configure pin 5.0 as input and enable interrupt
    P5->SEL0 &= ~(BIT0);
    P5->SEL1 &= ~(BIT0);
    P5->DIR &= ~(BIT0);

    P5->IFG &= ~(BIT0);
    P5->IES &= ~(BIT0);
    P5->IE |= (BIT0);

    NVIC->IP[9] &= (NVIC->IP[9] &0x00FFFFFF)|0x20000000;
    NVIC->ISER[1] =  1 << (PORT5_IRQn & 31);
}

void PORT6_IRQHandler(void){
	if(P6->IFG & BIT1){
	    P6->IFG &= ~BIT1;
		// execute user hook
		(*taskLeft)();
	}
}

void PORT5_IRQHandler(void){
    if(P5->IFG & BIT0){
        P5->IFG &= ~BIT0;
        // execute user hook
        (*taskRight)();
    }
}


// debugging code 
	uint16_t static printf_flag=50;
	printf_flag--;
	if(printf_flag==49){
	printf("x=%.4f y=%.4f theta=%.4f\n",x,y, theta);
	printf_flag=50;
	}

**Attention** This is a public forum