projet_voilier/Src/Roll.c
2020-11-16 18:42:10 +01:00

42 lines
934 B
C

#include "Roll.h"
#include "Sail.h"
#include "Accelerometer.h"
#include "stdlib.h"
ADC_TypeDef * ROLL_ADC = ADC2;
const int ROLL_X_CHANNEL = 11;
const int ROLL_Y_CHANNEL = 10;
GPIO_TypeDef * ROLL_GPIO = GPIOC;
const int ROLL_X_PIN = LL_GPIO_PIN_0;
const int ROLL_Y_PIN = LL_GPIO_PIN_1;
const int TRIGGER_ANGLE = 40;
int Roll_isEmergencyState = 0;
void Roll_conf(void)
{
Accelerometer_conf(ROLL_ADC, ROLL_GPIO, ROLL_X_PIN, ROLL_Y_PIN);
}
void Roll_start(void)
{
Accelerometer_start(ROLL_ADC);
}
int Roll_getEmergencyState(void)
{
return Roll_isEmergencyState;
}
void Roll_background(void)
{
const int xAngle = Accelerometer_getAngle(ROLL_ADC, ROLL_Y_CHANNEL);
//const int yAngle = Accelerometer_getAngle(ROLL_ADC, ROLL_Y_CHANNEL);
const int currentState = abs(xAngle) >= 40;
if (Roll_isEmergencyState && !currentState)
Sail_setEmergency(1);
else if (!Roll_isEmergencyState && currentState)
Sail_setEmergency(0);
}