void initMedianFilter(filterHistory_t *history, uint8_t historyLength) { //max number of values to use is 7 or else too much lag is introduced if(historyLength >7) historyLength = 7; history->histLength = historyLength; history->filterValues = calloc(historyLength, sizeof(history->filterValues)); if(history->filterValues == NULL) { WDT_IRQHandler(); } history->index = 0; }
/***************************************************************************** ** Function name: NMI_Handler ** ** Descriptions: NMI interrupt handler ** parameters: None ** ** Returned value: None ** *****************************************************************************/ void NMI_Handler( void ) { uint32_t regVal; regVal = LPC_SYSCON->NMISRC; regVal &= ~0x80000000; if ( regVal < MAX_NMI_NUM ) { if ( regVal == MRT_IRQn ) { MRT_IRQHandler(); } if ( regVal == UART0_IRQn ) { UART0_IRQHandler(); //UART_Handler(LPC_USART0); } if ( regVal == UART1_IRQn ) { UART1_IRQHandler(); //UART_Handler(LPC_USART1); } if ( regVal == UART2_IRQn ) { UART2_IRQHandler(); //UART_Handler(LPC_USART2); } if ( regVal == SPI0_IRQn ) { SPI0_IRQHandler(); //SPI_Handler(LPC_SPI0); } if ( regVal == SPI1_IRQn ) { SPI1_IRQHandler(); //SPI_Handler(LPC_SPI1); } if ( regVal == I2C_IRQn ) { I2C_IRQHandler(); } if ( regVal == SCT_IRQn ) { SCT_IRQHandler(); } if ( regVal == BOD_IRQn ) { BOD_IRQHandler(); } if ( regVal == WDT_IRQn ) { WDT_IRQHandler(); } if ( (regVal >= PININT0_IRQn) && (regVal <= PININT7_IRQn) ) { PININT_Handler ( regVal - PININT0_IRQn ); } if ( regVal == WKT_IRQn ) { WKT_IRQHandler(); } if ( regVal == CMP_IRQn ) { CMP_IRQHandler(); } NMI_Counter[regVal]++; } return; }