/**************************************************************************//** * @brief This interrupt is triggered at every second by the PCNT * *****************************************************************************/ void PCNT0_IRQHandler(void) { PCNT_IntClear(PCNT0, PCNT_IF_OF); seconds++; return; }
/**************************************************************************//** * @brief This interrupt is triggered at every second by the PCNT * *****************************************************************************/ void PCNT0_IRQHandler(void) { PCNT_IntClear(PCNT0, PCNT_IF_OF); pcntIrqCount++; /* Increase time with 1s */ if (!(timeIsFastForwarding)) { curTime++; } /* Notify main loop to redraw clock on display. */ updateDisplay = true; }
/**************************************************************************//** * @brief PCNT0_IRQHandler * Interrupt Service Routine for PCNT0 Interrupt Line *****************************************************************************/ void PCNT0_IRQHandler(void) { PCNT_IntGet(PCNT0); PCNT_IntClear(PCNT0, PCNT_IEN_DIRCNG); /* Enable clock for LCD. */ CMU_ClockEnable(cmuClock_LCD, true); /* Wait until SYNCBUSY_CTRL flag is cleared. */ LCD_SyncBusyDelay(LCD_SYNCBUSY_CTRL); /* Enable LCD. */ LCD_Enable(true); /* Write PCNT counter number the LCD */ SegmentLCD_Write(PCNT_DIRCHANGE_STRING); /* Disable RTC first to reset counter */ RTC_Enable(false); /* Set compare value */ RTC_CompareSet(0, RTC_COMP_VALUE); /* Enable RTC */ RTC_Enable(true); }