add moveSteps function (not tested yet)

main
Simon Frei 4 years ago
parent b91e301939
commit 94ae307706
  1. 2
      ADIS_tinyK22_SplitFlap/McuLib/config/McuULN2003config.h
  2. 16
      ADIS_tinyK22_SplitFlap/source/splitflap.c
  3. 3
      ADIS_tinyK22_SplitFlap/source/splitflap.h

@ -21,7 +21,7 @@ extern "C" {
#endif #endif
#ifndef McuULN2003_CONFIG_USE_ACCELERATION #ifndef McuULN2003_CONFIG_USE_ACCELERATION
#define McuULN2003_CONFIG_USE_ACCELERATION (0) #define McuULN2003_CONFIG_USE_ACCELERATION (1)
/*!< 1: stepper motor uses acceleration table; 0: no acceleration table used */ /*!< 1: stepper motor uses acceleration table; 0: no acceleration table used */
#endif #endif

@ -7,6 +7,8 @@
#include "splitflap.h" #include "splitflap.h"
#include "McuULN2003.h" #include "McuULN2003.h"
#include <stdbool.h>
#include "McuWait.h"
SF_Handle_t SF_Init(SF_Config_t* instance, int id){ SF_Handle_t SF_Init(SF_Config_t* instance, int id){
SF_t* splitflap; SF_t* splitflap;
@ -24,7 +26,19 @@ SF_Handle_t SF_Init(SF_Config_t* instance, int id){
return splitflap; return splitflap;
} }
void SF_MoveSteps(SF_Handle_t instance, uint8_t steps){
McuULN2003_AccelerationStart(((SF_t*)instance)->motor);
// maybe move callback?
while(steps>0){
if(McuULN2003_StepCallback(((SF_t*)instance)->motor, true) == true){
steps--;
}
McuWait_Waitms(1);
}
McuULN2003_AccelerationEnd(((SF_t*)instance)->motor);
// Power off necessary? -> what to do after power off? init again?
McuULN2003_PowerOff(((SF_t*)instance)->motor);
}
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);

@ -38,6 +38,9 @@ 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? */
void SF_MoveSteps(SF_Handle_t instance, uint8_t steps);
/* split flap deinitialization */ /* split flap deinitialization */
void SF_Deinit(SF_Handle_t instance); void SF_Deinit(SF_Handle_t instance);

Loading…
Cancel
Save