diff --git a/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
new file mode 100644
index 0000000..9d0707e
--- /dev/null
+++ b/ADIS_tinyK22_SplitFlap/ADIS_tinyK22_SplitFlap.mex
@@ -0,0 +1,149 @@
+
+
+
+ MK22FN512xxx12
+ MK22FN512VLH12
+ ksdk2_0
+
+
+
+ Configuration imported from ADIS_tinyK22_SplitFlap
+
+
+ true
+ false
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+ 12.0.0
+
+
+
+
+
+
+ Configures pin routing and optionally pin electrical features.
+
+ true
+ core0
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12.0.0
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ N/A
+
+
+
+
+
+
+
+
+
+ 12.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ N/A
+
+
+
+
\ No newline at end of file
diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.c b/ADIS_tinyK22_SplitFlap/board/pin_mux.c
index d9a3ff4..7253568 100644
--- a/ADIS_tinyK22_SplitFlap/board/pin_mux.c
+++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.c
@@ -19,8 +19,6 @@ pin_labels:
/* clang-format on */
#include "fsl_common.h"
-#include "fsl_port.h"
-#include "fsl_gpio.h"
#include "pin_mux.h"
/* FUNCTION ************************************************************************************************************
@@ -39,8 +37,7 @@ void BOARD_InitBootPins(void)
* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
BOARD_InitPins:
- options: {callFromInitBoot: 'true', coreID: core0, enableClock: 'true'}
-- pin_list:
- - {pin_num: '45', peripheral: GPIOC, signal: 'GPIO, 2', pin_signal: ADC0_SE4b/CMP1_IN0/PTC2/SPI0_PCS2/UART1_CTS_b/FTM0_CH1/FB_AD12/I2S0_TX_FS/LPUART0_CTS_b, direction: OUTPUT}
+- pin_list: []
* BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
*/
/* clang-format on */
@@ -53,18 +50,6 @@ BOARD_InitPins:
* END ****************************************************************************************************************/
void BOARD_InitPins(void)
{
- /* Port C Clock Gate Control: Clock enabled */
- CLOCK_EnableClock(kCLOCK_PortC);
-
- gpio_pin_config_t LED_BLUE_config = {
- .pinDirection = kGPIO_DigitalOutput,
- .outputLogic = 0U
- };
- /* Initialize GPIO functionality on pin PTC2 (pin 45) */
- GPIO_PinInit(BOARD_INITPINS_LED_BLUE_GPIO, BOARD_INITPINS_LED_BLUE_PIN, &LED_BLUE_config);
-
- /* PORTC2 (pin 45) is configured as PTC2 */
- PORT_SetPinMux(BOARD_INITPINS_LED_BLUE_PORT, BOARD_INITPINS_LED_BLUE_PIN, kPORT_MuxAsGpio);
}
/***********************************************************************************************************************
* EOF
diff --git a/ADIS_tinyK22_SplitFlap/board/pin_mux.h b/ADIS_tinyK22_SplitFlap/board/pin_mux.h
index f040628..598ae8e 100644
--- a/ADIS_tinyK22_SplitFlap/board/pin_mux.h
+++ b/ADIS_tinyK22_SplitFlap/board/pin_mux.h
@@ -25,19 +25,6 @@ extern "C" {
*/
void BOARD_InitBootPins(void);
-/*! @name PORTC2 (number 45), LED_BLUE
- @{ */
-
-/* Symbols to be used with GPIO driver */
-#define BOARD_INITPINS_LED_BLUE_GPIO GPIOC /*!<@brief GPIO peripheral base pointer */
-#define BOARD_INITPINS_LED_BLUE_GPIO_PIN_MASK (1U << 2U) /*!<@brief GPIO pin mask */
-
-/* Symbols to be used with PORT driver */
-#define BOARD_INITPINS_LED_BLUE_PORT PORTC /*!<@brief PORT peripheral base pointer */
-#define BOARD_INITPINS_LED_BLUE_PIN 2U /*!<@brief PORT pin number */
-#define BOARD_INITPINS_LED_BLUE_PIN_MASK (1U << 2U) /*!<@brief PORT pin mask */
- /* @} */
-
/*!
* @brief Configures pin routing and optionally pin electrical features.
*
diff --git a/ADIS_tinyK22_SplitFlap/source/application.c b/ADIS_tinyK22_SplitFlap/source/application.c
index 3abb7a0..9444728 100644
--- a/ADIS_tinyK22_SplitFlap/source/application.c
+++ b/ADIS_tinyK22_SplitFlap/source/application.c
@@ -70,15 +70,21 @@ void App_Init(void){
/* Application run */
void App_Run(void){
- while(1) {
+
+ SF_MoveMotorToZeroPosition(splitflap0);
+
+
+
+ /* TEST PATTERN */
+ /*while(1) {
if(SF_GetMagSensorAtZeroPosition(splitflap0)){
McuLED_On(LED_blue);
} else {
McuLED_Off(LED_blue);
}
- McuWait_Waitms(10); /* wait for 100 ms */
- }
+ McuWait_Waitms(10); // wait for 10 ms
+ }*/
}
diff --git a/ADIS_tinyK22_SplitFlap/source/main.c b/ADIS_tinyK22_SplitFlap/source/main.c
index a62fd37..789707b 100644
--- a/ADIS_tinyK22_SplitFlap/source/main.c
+++ b/ADIS_tinyK22_SplitFlap/source/main.c
@@ -72,7 +72,7 @@ int main(void) {
App_Run();
/* deinit app */
- //PRINTF("De-Initializing App...\n");
+ PRINTF("De-Initializing App...\n");
App_Deinit();
/* deinit platform */
diff --git a/ADIS_tinyK22_SplitFlap/source/platform.c b/ADIS_tinyK22_SplitFlap/source/platform.c
index 08a015a..e15e9ce 100644
--- a/ADIS_tinyK22_SplitFlap/source/platform.c
+++ b/ADIS_tinyK22_SplitFlap/source/platform.c
@@ -14,6 +14,12 @@
#include "splitflap.h"
void PL_Init(void){
+
+ /* Enable clock for used PORTS */
+ CLOCK_EnableClock(kCLOCK_PortA);
+ CLOCK_EnableClock(kCLOCK_PortB);
+ CLOCK_EnableClock(kCLOCK_PortC);
+
McuLib_Init();
McuWait_Init();
McuGPIO_Init();
diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.c b/ADIS_tinyK22_SplitFlap/source/splitflap.c
index 3bd3805..48488a0 100644
--- a/ADIS_tinyK22_SplitFlap/source/splitflap.c
+++ b/ADIS_tinyK22_SplitFlap/source/splitflap.c
@@ -86,11 +86,28 @@ SF_Handle_t SF_Init(SF_Config_t* instance, int id){
bool SF_MoveMotorToZeroPosition(SF_Handle_t instance){
int numStepsMoved = 0;
+ // move out of sensor
+ while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == true){
+ McuULN2003_IncStep(((SF_t*)instance)->motor);
+ McuWait_Waitms(20);
+ }
+
+ // turn until sensor is on
while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == false && numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND ){
McuULN2003_IncStep(((SF_t*)instance)->motor);
McuWait_Waitms(20);
numStepsMoved++;
}
+
+ // one more segment if not already one round
+ if(numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND){
+ for(int i=0; imotor);
+ McuWait_Waitms(20);
+ numStepsMoved++;
+ }
+ }
+
McuULN2003_SetPos(((SF_t*)instance)->motor, 0);
McuULN2003_PowerOff(((SF_t*)instance)->motor);
// success if less than one rotation
@@ -116,7 +133,7 @@ void SF_MoveSteps(SF_Handle_t instance, int32_t steps){
}
bool SF_GetMagSensorAtZeroPosition(SF_Handle_t instance){
- return McuGPIO_GetValue(((SF_t*)instance)->magSensor);
+ return McuGPIO_IsLow(((SF_t*)instance)->magSensor);
}
void SF_MoveToFlap(SF_Handle_t instance, char* flap){
diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.h b/ADIS_tinyK22_SplitFlap/source/splitflap.h
index ffc6ac8..05b4144 100644
--- a/ADIS_tinyK22_SplitFlap/source/splitflap.h
+++ b/ADIS_tinyK22_SplitFlap/source/splitflap.h
@@ -15,7 +15,8 @@
/****** SETTINGS ******/
#define SPLITFLAP_CONFIG_USE_FREERTOS_HEAP 0
-#define SPLITFLAP_STEPS_ONE_ROUND 200
+#define SPLITFLAP_STEPS_ONE_ROUND 520 // 40 segments a 13 steps
+#define SPLITFLAP_STEPS_PER_SEGMENT 13
/****** TYPES ******/