implemented mag sensor readout function

main
Jonas Arnold 4 years ago
parent 94ae307706
commit 2b71e4a279
  1. 9
      ADIS_tinyK22_SplitFlap/source/application.c
  2. 2
      ADIS_tinyK22_SplitFlap/source/main.c
  3. 7
      ADIS_tinyK22_SplitFlap/source/splitflap.c
  4. 6
      ADIS_tinyK22_SplitFlap/source/splitflap.h

@ -71,8 +71,13 @@ void App_Init(void){
/* Application run */ /* Application run */
void App_Run(void){ void App_Run(void){
while(1) { while(1) {
McuLED_Toggle(LED_blue); if(SF_GetMagSensorAtZeroPosition(splitflap0)){
McuWait_Waitms(100); /* wait for 100 ms */ McuLED_On(LED_blue);
} else {
McuLED_Off(LED_blue);
}
McuWait_Waitms(10); /* wait for 100 ms */
} }
} }

@ -73,7 +73,7 @@ int main(void) {
/* deinit app */ /* deinit app */
//PRINTF("De-Initializing App...\n"); //PRINTF("De-Initializing App...\n");
//App_Deinit(); App_Deinit();
/* deinit platform */ /* deinit platform */
PRINTF("De-Initializing Platform...\n"); PRINTF("De-Initializing Platform...\n");

@ -23,6 +23,8 @@ SF_Handle_t SF_Init(SF_Config_t* instance, int id){
splitflap->motor = McuULN2003_InitMotor(&instance->motorConfig); splitflap->motor = McuULN2003_InitMotor(&instance->motorConfig);
splitflap->id = id; splitflap->id = id;
/* TODO IMPLEMENT ACTUAL INITIALIZATION of Motor */
return splitflap; return splitflap;
} }
@ -40,6 +42,11 @@ void SF_MoveSteps(SF_Handle_t instance, uint8_t steps){
McuULN2003_PowerOff(((SF_t*)instance)->motor); 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){ void SF_Deinit(SF_Handle_t instance){
McuULN2003_DeinitMotor(((SF_t*)instance)->motor); McuULN2003_DeinitMotor(((SF_t*)instance)->motor);
McuGPIO_DeinitGPIO(((SF_t*)instance)->magSensor); McuGPIO_DeinitGPIO(((SF_t*)instance)->magSensor);

@ -8,6 +8,7 @@
#ifndef SPLITFLAP_H_ #ifndef SPLITFLAP_H_
#define SPLITFLAP_H_ #define SPLITFLAP_H_
#include <stdbool.h>
#include "McuULN2003.h" #include "McuULN2003.h"
#include "McuGPIO.h" #include "McuGPIO.h"
@ -38,9 +39,12 @@ typedef struct {
* Initialization will be made inside the SF_Init method */ * Initialization will be made inside the SF_Init method */
SF_Handle_t SF_Init(SF_Config_t* instance, int id); 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); 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 */ /* split flap deinitialization */
void SF_Deinit(SF_Handle_t instance); void SF_Deinit(SF_Handle_t instance);

Loading…
Cancel
Save