summaryrefslogtreecommitdiffhomepage
path: root/digital/beacon/src/calibration.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/beacon/src/calibration.c')
-rw-r--r--digital/beacon/src/calibration.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/digital/beacon/src/calibration.c b/digital/beacon/src/calibration.c
index 481e96c3..91b96e7f 100644
--- a/digital/beacon/src/calibration.c
+++ b/digital/beacon/src/calibration.c
@@ -29,8 +29,10 @@
#include "servo.h"
#include "motor.h"
#include "codewheel.h"
+#include "buttons.h"
-HAL_AppTimer_t calibrationTimer; // TIMER descripor used by the DEBUG task
+HAL_AppTimer_t calibrationTimer; // TIMER descripor used by the calibration task
+HAL_AppTimer_t ManualcalibrationTimer; // TIMER descripor used by the manual calibration task
calibration_s calibration;
@@ -43,6 +45,15 @@ void calibration_init_structure(void)
}
/* This function starts the calibration task */
+void calibration_start_manual_task(void)
+{
+ calibrationTimer.interval = CALIBRATION_MANUAL_PERIOD;
+ calibrationTimer.mode = TIMER_REPEAT_MODE;
+ calibrationTimer.callback = calibration_manual_task;
+ HAL_StartAppTimer(&calibrationTimer);
+}
+
+/* This function starts the calibration task */
void calibration_start_task(void)
{
calibration.state = CALIBRATION_INIT;
@@ -219,3 +230,16 @@ TCalibration_state calibration_get_state(void)
{
return calibration.state;
}
+
+/* Manual calibration task */
+void calibration_manual_task(void)
+{
+ if(button_get_state(1) == BUTTON_PRESSED)
+ servo_angle_increase(SERVO_1);
+ if(button_get_state(2) == BUTTON_PRESSED)
+ servo_angle_decrease(SERVO_1);
+ if(button_get_state(3) == BUTTON_PRESSED)
+ servo_angle_increase(SERVO_2);
+ if(button_get_state(4) == BUTTON_PRESSED)
+ servo_angle_decrease(SERVO_2);
+}