diff --git a/ADIS_tinyK22_SplitFlap/source/application.c b/ADIS_tinyK22_SplitFlap/source/application.c index 0b06e45..3abb7a0 100644 --- a/ADIS_tinyK22_SplitFlap/source/application.c +++ b/ADIS_tinyK22_SplitFlap/source/application.c @@ -71,8 +71,13 @@ void App_Init(void){ /* Application run */ void App_Run(void){ while(1) { - McuLED_Toggle(LED_blue); - McuWait_Waitms(100); /* wait for 100 ms */ + if(SF_GetMagSensorAtZeroPosition(splitflap0)){ + McuLED_On(LED_blue); + } else { + McuLED_Off(LED_blue); + } + + McuWait_Waitms(10); /* wait for 100 ms */ } } diff --git a/ADIS_tinyK22_SplitFlap/source/main.c b/ADIS_tinyK22_SplitFlap/source/main.c index 1ec356c..a62fd37 100644 --- a/ADIS_tinyK22_SplitFlap/source/main.c +++ b/ADIS_tinyK22_SplitFlap/source/main.c @@ -73,7 +73,7 @@ int main(void) { /* deinit app */ //PRINTF("De-Initializing App...\n"); - //App_Deinit(); + App_Deinit(); /* deinit platform */ PRINTF("De-Initializing Platform...\n"); diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.c b/ADIS_tinyK22_SplitFlap/source/splitflap.c index c461f4b..f9085d3 100644 --- a/ADIS_tinyK22_SplitFlap/source/splitflap.c +++ b/ADIS_tinyK22_SplitFlap/source/splitflap.c @@ -23,6 +23,8 @@ SF_Handle_t SF_Init(SF_Config_t* instance, int id){ splitflap->motor = McuULN2003_InitMotor(&instance->motorConfig); splitflap->id = id; + /* TODO IMPLEMENT ACTUAL INITIALIZATION of Motor */ + return splitflap; } @@ -40,6 +42,11 @@ void SF_MoveSteps(SF_Handle_t instance, uint8_t steps){ McuULN2003_PowerOff(((SF_t*)instance)->motor); } +bool SF_GetMagSensorAtZeroPosition(SF_Handle_t instance){ + return McuGPIO_GetValue(((SF_t*)instance)->magSensor); +} + + void SF_Deinit(SF_Handle_t instance){ McuULN2003_DeinitMotor(((SF_t*)instance)->motor); McuGPIO_DeinitGPIO(((SF_t*)instance)->magSensor); diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.h b/ADIS_tinyK22_SplitFlap/source/splitflap.h index 2bbccf6..04218e9 100644 --- a/ADIS_tinyK22_SplitFlap/source/splitflap.h +++ b/ADIS_tinyK22_SplitFlap/source/splitflap.h @@ -8,6 +8,7 @@ #ifndef SPLITFLAP_H_ #define SPLITFLAP_H_ +#include #include "McuULN2003.h" #include "McuGPIO.h" @@ -38,9 +39,12 @@ typedef struct { * Initialization will be made inside the SF_Init method */ SF_Handle_t SF_Init(SF_Config_t* instance, int id); -/* split flab moves number of steps maybe uint16_t? */ +/* split flap moves number of steps maybe uint16_t? */ void SF_MoveSteps(SF_Handle_t instance, uint8_t steps); +/* get mag sensor state. returns true if sensor is at zero position, otherwise false */ +bool SF_GetMagSensorAtZeroPosition(SF_Handle_t instance); + /* split flap deinitialization */ void SF_Deinit(SF_Handle_t instance);