Hi,
I'm just starting with msp 432.
I've attached a clock source on a pin and in the interrupt I toggle one other pin. (I need to read some serial data)
Everything works ok if the clock is 10k or below, but if the clock is 100K,1M...+ it seams that the interrupt is not handling correctly.
I was trying to do the same thing with the TI RTOS but it was the same. I've also tried to handle the data with spi and also the same.. :/
Can you please point me out what I'm doing wrong? 48Mhz processor should handle this easily.
Thank you!
The code is from the interrupt example.
int main(void)
{
volatile uint32_t ii;
/* Halting the Watchdog */
MAP_WDT_A_holdTimer();
/* Configuring P1.0 as output and P1.1 (switch) as input */
MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN7);
/* Configuring P1.1 as an input and enabling interrupts */
MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN5);
// MAP_GPIO_setAsInputPin(GPIO_PORT_P1,GPIO_PIN5);
MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN5);
MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN5);
MAP_Interrupt_enableInterrupt(INT_PORT1);
/* Enabling SRAM Bank Retention */
MAP_SysCtl_enableSRAMBankRetention(SYSCTL_SRAM_BANK1);
/* Enabling MASTER interrupts */
MAP_Interrupt_enableMaster();
/* Going to LPM3 */
while (1)
{
MAP_PCM_gotoLPM3();
}
}
/* GPIO ISR */
void PORT1_IRQHandler(void)
{
uint32_t status;
status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);
MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status);
/* Toggling the output on the LED */
if(status & GPIO_PIN5)
{
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN7);
}
}