aboutsummaryrefslogtreecommitdiff
path: root/laser-tag software
diff options
context:
space:
mode:
authorDavid Barksdale <amatus@amatus.name>2015-10-05 19:16:01 -0500
committerDavid Barksdale <amatus@amatus.name>2015-10-05 19:16:01 -0500
commit3efdf1c9c677bc332de20a6c38fafc4cca9dc42e (patch)
treebad473350822a45653ddc84b1da05968b77c3cd0 /laser-tag software
parentb9ce51f2a86380d71b763f739f1d51b542d46863 (diff)
Testing the comparator and 6-bit DAC
Diffstat (limited to 'laser-tag software')
-rwxr-xr-xlaser-tag software/main.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/laser-tag software/main.c b/laser-tag software/main.c
index 699dba1..d40e46e 100755
--- a/laser-tag software/main.c
+++ b/laser-tag software/main.c
@@ -30,6 +30,7 @@
*/
#include "fsl_clock_manager.h"
+#include "fsl_cmp_driver.h"
#include "fsl_dac_driver.h"
#include "fsl_dma_driver.h"
#include "fsl_gpio_driver.h"
@@ -118,13 +119,35 @@ static const lptmr_user_config_t g_lptmrConfig = {
// PIT config
static const pit_user_config_t g_pitChan0 = {
- .periodUs = 10, // 100 kHz
+ .periodUs = 100, // 10 kHz
+};
+
+// CMP config
+static const cmp_comparator_config_t g_cmpConf = {
+ .hystersisMode = kCmpHystersisOfLevel0,
+ .pinoutEnable = true,
+ .pinoutUnfilteredEnable = false,
+ .invertEnable = false,
+ .highSpeedEnable = false,
+ .dmaEnable = false,
+ .risingIntEnable = true,
+ .fallingIntEnable = true,
+ .plusChnMux = kCmpInputChn5,
+ .minusChnMux = kCmpInputChnDac,
+ .triggerEnable = false,
+};
+
+static cmp_dac_config_t g_cmpDacConf = {
+ .dacEnable = true,
+ .refVoltSrcMode = kCmpDacRefVoltSrcOf2,
+ .dacValue = 32,
};
///////
// Code
+cmp_state_t g_cmpState;
dma_channel_t g_chan;
/*!
@@ -148,6 +171,18 @@ void lptmr_call_back(void)
}
}
+
+void CMP0_IRQHandler(void)
+{
+ /* Clear flags. */
+ if (CMP_DRV_GetFlag(0, kCmpFlagOfCoutRising)) {
+ CMP_DRV_ClearFlag(0, kCmpFlagOfCoutRising);
+ }
+ if (CMP_DRV_GetFlag(0, kCmpFlagOfCoutFalling)) {
+ CMP_DRV_ClearFlag(0, kCmpFlagOfCoutFalling);
+ }
+}
+
/*!
* @brief Main function
*/
@@ -203,6 +238,12 @@ int main (void)
DMA_HAL_SetDisableRequestAfterDoneCmd(g_dmaBase[0], g_chan.channel, false);
DMA_DRV_StartChannel(&g_chan);
+ /* Initialize CMP */
+ CMP_DRV_Init(0, &g_cmpState, &g_cmpConf);
+ CMP_DRV_ConfigDacChn(0, &g_cmpDacConf);
+ PORT_HAL_SetMuxMode(g_portBase[GPIOE_IDX], 0, kPortMuxAlt5);
+ CMP_DRV_Start(0);
+
/* Start LPTMR */
LPTMR_DRV_Start(LPTMR0_IDX);