From f63f2f9b9624c504951a1006300b4189e652a823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 14 Nov 2017 03:43:51 +0100 Subject: [PATCH] Adding left/key_scanner.[ch] which I totally forgot. --- left/src/key_scanner.c | 21 +++++++++++++++++++++ left/src/key_scanner.h | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 left/src/key_scanner.c create mode 100644 left/src/key_scanner.h diff --git a/left/src/key_scanner.c b/left/src/key_scanner.c new file mode 100644 index 0000000..fb89bd9 --- /dev/null +++ b/left/src/key_scanner.c @@ -0,0 +1,21 @@ +#include "fsl_lptmr.h" +#include "key_scanner.h" +#include "main.h" + +void KEY_SCANNER_HANDLER(void) +{ + KeyMatrix_ScanRow(&keyMatrix); + LPTMR_ClearStatusFlags(KEY_SCANNER_LPTMR_BASEADDR, kLPTMR_TimerCompareFlag); +} + +void InitKeyScanner(void) +{ + lptmr_config_t lptmrConfig; + LPTMR_GetDefaultConfig(&lptmrConfig); + LPTMR_Init(KEY_SCANNER_LPTMR_BASEADDR, &lptmrConfig); + + LPTMR_SetTimerPeriod(KEY_SCANNER_LPTMR_BASEADDR, MSEC_TO_COUNT(KEY_SCANNER_INTERVAL_MSEC, LPTMR_SOURCE_CLOCK)); + LPTMR_EnableInterrupts(KEY_SCANNER_LPTMR_BASEADDR, kLPTMR_TimerInterruptEnable); + EnableIRQ(KEY_SCANNER_LPTMR_IRQ_ID); + LPTMR_StartTimer(KEY_SCANNER_LPTMR_BASEADDR); +} diff --git a/left/src/key_scanner.h b/left/src/key_scanner.h new file mode 100644 index 0000000..a871d48 --- /dev/null +++ b/left/src/key_scanner.h @@ -0,0 +1,18 @@ +#ifndef __KEY_SCANNER_H__ +#define __KEY_SCANNER_H__ + +// Macros: + + #define LPTMR_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_LpoClk) + + #define KEY_SCANNER_LPTMR_BASEADDR LPTMR0 + #define KEY_SCANNER_LPTMR_IRQ_ID LPTMR0_IRQn + #define KEY_SCANNER_HANDLER LPTMR0_IRQHandler + + #define KEY_SCANNER_INTERVAL_MSEC 1 + +// Functions: + + void InitKeyScanner(void); + +#endif