make code more consistent
This commit is contained in:
parent
61b90609c2
commit
89867cd01e
17 changed files with 156 additions and 105 deletions
|
@ -1,6 +1,9 @@
|
||||||
#include "ADC.h"
|
#include "ADC.h"
|
||||||
#include "stm32f1xx_ll_bus.h" // Pour horloge
|
#include "stm32f1xx_ll_bus.h" // Pour horloge
|
||||||
|
|
||||||
|
const float MAX_VOLTS = 3.3;
|
||||||
|
const float MAX_CONVERTED_VALUE = 4095.0;
|
||||||
|
|
||||||
void ADC_conf(ADC_TypeDef *adc)
|
void ADC_conf(ADC_TypeDef *adc)
|
||||||
{
|
{
|
||||||
if (adc == ADC1) {
|
if (adc == ADC1) {
|
||||||
|
@ -43,7 +46,7 @@ uint16_t ADC_readRaw(ADC_TypeDef *adc, int channel)
|
||||||
|
|
||||||
float ADC_convertToVolt(uint16_t value)
|
float ADC_convertToVolt(uint16_t value)
|
||||||
{
|
{
|
||||||
return ((double) value) / 4095.0 * 3.3;
|
return ((double) value) / MAX_CONVERTED_VALUE * MAX_VOLTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#include "GPIO.h"
|
#include "GPIO.h"
|
||||||
#include "stm32f1xx_ll_gpio.h"
|
#include "stm32f1xx_ll_gpio.h"
|
||||||
|
|
||||||
void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outputType, uint32_t pullMode){
|
void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outputType, uint32_t pullMode)
|
||||||
|
{
|
||||||
LL_GPIO_InitTypeDef init;
|
LL_GPIO_InitTypeDef init;
|
||||||
|
|
||||||
//Activation de l'horloge
|
//Activation de l'horloge
|
||||||
|
@ -21,15 +21,17 @@ void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outp
|
||||||
LL_GPIO_Init(GPIOx, &init);
|
LL_GPIO_Init(GPIOx, &init);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPIO_setPin(GPIO_TypeDef * GPIOx, uint32_t PINx, int output){
|
void GPIO_setPin(GPIO_TypeDef * GPIOx, uint32_t PINx, int output)
|
||||||
|
{
|
||||||
if (output) LL_GPIO_SetOutputPin(GPIOx, PINx);
|
if (output) {
|
||||||
else LL_GPIO_ResetOutputPin(GPIOx,PINx);
|
LL_GPIO_SetOutputPin(GPIOx, PINx);
|
||||||
|
} else {
|
||||||
|
LL_GPIO_ResetOutputPin(GPIOx,PINx);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
int GPIO_readPin(GPIO_TypeDef * GPIOx, uint32_t PINx){
|
int GPIO_readPin(GPIO_TypeDef * GPIOx, uint32_t PINx)
|
||||||
|
{
|
||||||
return LL_GPIO_IsOutputPinSet(GPIOx, PINx);
|
return LL_GPIO_IsOutputPinSet(GPIOx, PINx);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
#include "stm32f1xx_ll_bus.h" // Pour horloge
|
#include "stm32f1xx_ll_bus.h" // Pour horloge
|
||||||
|
|
||||||
|
|
||||||
void Usart_conf(USART_TypeDef *USARTx) {
|
void Usart_conf(USART_TypeDef *USARTx)
|
||||||
|
{
|
||||||
int txPin;
|
int txPin;
|
||||||
GPIO_TypeDef *usartGpio;
|
GPIO_TypeDef *usartGpio;
|
||||||
|
|
||||||
|
@ -36,18 +37,21 @@ void Usart_conf(USART_TypeDef *USARTx) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Usart_enable(USART_TypeDef *USARTx) {
|
void Usart_enable(USART_TypeDef *USARTx)
|
||||||
|
{
|
||||||
LL_USART_Enable(USARTx);
|
LL_USART_Enable(USARTx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void sendChar(USART_TypeDef *USARTx, char c) {
|
void sendChar(USART_TypeDef *USARTx, char c)
|
||||||
|
{
|
||||||
LL_USART_TransmitData8(USARTx, c);
|
LL_USART_TransmitData8(USARTx, c);
|
||||||
while (!LL_USART_IsActiveFlag_TXE(USARTx)) {}
|
while (!LL_USART_IsActiveFlag_TXE(USARTx)) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Usart_send(USART_TypeDef *USARTx, char *msg, int length) {
|
void Usart_send(USART_TypeDef *USARTx, char *msg, int length)
|
||||||
|
{
|
||||||
for (int i = 0; i < length; i++) {
|
for (int i = 0; i < length; i++) {
|
||||||
sendChar(USARTx, msg[i]);
|
sendChar(USARTx, msg[i]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
|
|
||||||
|
|
||||||
const float ZERO_G = 1.65; // 0 g
|
const float ZERO_G = 1.65; // 0 g
|
||||||
//const float MAX_G = 2.13; // 1 g
|
|
||||||
//const float MIN_G = 1.17; // -1 g
|
|
||||||
const float SENSITIVITY = 0.48;
|
const float SENSITIVITY = 0.48;
|
||||||
|
|
||||||
void Accelerometer_conf(ADC_TypeDef *adc, GPIO_TypeDef * gpio, int pinx, int piny)
|
void Accelerometer_conf(ADC_TypeDef *adc, GPIO_TypeDef * gpio, int pinx, int piny)
|
||||||
|
|
|
@ -1,32 +1,28 @@
|
||||||
#include "DCMotor.h"
|
#include "DCMotor.h"
|
||||||
|
#include "math.h"
|
||||||
|
|
||||||
void DCMotor_conf() {
|
void DCMotor_conf(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin)
|
||||||
|
{
|
||||||
//On règle la vitesse en valeur absolue, ici à 0
|
//On règle la vitesse en valeur absolue, ici à 0
|
||||||
Timer_pwmo_conf(TIM2, LL_TIM_CHANNEL_CH2, 50, 0);
|
Timer_pwmo_conf(timer, channel, 50, 0);
|
||||||
|
|
||||||
//On règle le sens du moteur, ici sens direct (?)
|
//On règle le sens du moteur, ici sens direct (?)
|
||||||
GPIO_conf(GPIOA, LL_GPIO_PIN_2, LL_GPIO_MODE_OUTPUT, LL_GPIO_OUTPUT_OPENDRAIN, LL_GPIO_PULL_DOWN);
|
GPIO_conf(gpio, pin, LL_GPIO_MODE_OUTPUT, LL_GPIO_OUTPUT_OPENDRAIN, LL_GPIO_PULL_DOWN);
|
||||||
GPIO_setPin(GPIOA, LL_GPIO_PIN_2, 0);
|
GPIO_setPin(gpio, pin, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DCMotor_setSpeed(double speed) {
|
void DCMotor_setSpeed(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin, float speed)
|
||||||
|
{
|
||||||
double speedAbs = (speed > 0.) ? speed : -speed;
|
const int dir = (speed > 0.) ? 1 : 0;
|
||||||
int sens = (speed > 0.) ? 1 : 0;
|
|
||||||
|
|
||||||
Timer_pwmo_setDutyCycle(TIM2, LL_TIM_CHANNEL_CH2, speedAbs);
|
|
||||||
GPIO_setPin(GPIOA, LL_GPIO_PIN_2, sens);
|
|
||||||
|
|
||||||
|
Timer_pwmo_setDutyCycle(timer, channel, fabs(speed));
|
||||||
|
GPIO_setPin(gpio, pin, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
double DCMotor_getSpeed(){
|
float DCMotor_getSpeed(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin)
|
||||||
|
{
|
||||||
double speedAbs = Timer_pwmo_getDutyCycle(TIM2, LL_TIM_CHANNEL_CH2);
|
const float speedAbs = Timer_pwmo_getDutyCycle(timer, channel);
|
||||||
int sens = GPIO_readPin(GPIOA, LL_GPIO_PIN_2);
|
const int dir = GPIO_readPin(gpio, pin);
|
||||||
|
|
||||||
double speed = (sens) ? speedAbs : -speedAbs;
|
|
||||||
|
|
||||||
return speed;
|
|
||||||
|
|
||||||
|
return dir ? speedAbs : -speedAbs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
#include "GPIO.h"
|
#include "GPIO.h"
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
|
|
||||||
void DCMotor_conf(void);
|
void DCMotor_conf(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin);
|
||||||
|
|
||||||
void DCMotor_setSpeed(double speed);
|
void DCMotor_setSpeed(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin, float speed);
|
||||||
|
|
||||||
double DCMotor_getSpeed(void);
|
float DCMotor_getSpeed(TIM_TypeDef * timer, int channel, GPIO_TypeDef * gpio, int pin);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,18 +1,16 @@
|
||||||
#include "RFEmitter.h"
|
#include "RFEmitter.h"
|
||||||
|
|
||||||
|
void RFEmitter_conf(USART_TypeDef * usart)
|
||||||
void RFEmitter_conf() {
|
{
|
||||||
|
Usart_conf(usart);
|
||||||
//On configure l'USART
|
|
||||||
Usart_conf(USART1);
|
|
||||||
|
|
||||||
//On active l'USART
|
|
||||||
Usart_enable(USART1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFEmitter_send(char * message, int longueur) {
|
void RFEmitter_start(USART_TypeDef * usart)
|
||||||
|
{
|
||||||
Usart_send(USART1, message, longueur);
|
Usart_enable(usart);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur)
|
||||||
|
{
|
||||||
|
Usart_send(usart, message, longueur);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,11 @@
|
||||||
|
|
||||||
#include "USART.h"
|
#include "USART.h"
|
||||||
|
|
||||||
void RFEmitter_conf(void);
|
void RFEmitter_conf(USART_TypeDef * usart);
|
||||||
|
|
||||||
void RFEmitter_send(char * message, int longueur);
|
void RFEmitter_start(USART_TypeDef * usart);
|
||||||
|
|
||||||
|
void RFEmitter_send(USART_TypeDef * usart, char * message, int longueur);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
#include "RFReceiver.h"
|
#include "RFReceiver.h"
|
||||||
|
|
||||||
void RFReceiver_conf() {
|
void RFReceiver_conf(TIM_TypeDef * timer, int channel)
|
||||||
|
{
|
||||||
|
PWMi_conf(timer, channel);
|
||||||
|
}
|
||||||
|
|
||||||
PWMi_conf(TIM4, 1);
|
float RFReceiver_getData(TIM_TypeDef * timer)
|
||||||
|
{
|
||||||
}
|
const int duty_cycle = PWMi_getDutyCycle(timer);
|
||||||
|
const int period = PWMi_getPeriod(timer);
|
||||||
double RFReceiver_getData(){
|
const float duree_impulsion = duty_cycle * period;
|
||||||
|
|
||||||
int duty_cycle = PWMi_getDutyCycle(TIM4);
|
|
||||||
int period = PWMi_getPeriod(TIM4);
|
|
||||||
double duree_impulsion = duty_cycle * period;
|
|
||||||
|
|
||||||
return (duree_impulsion -1) * 200 - 100;
|
return (duree_impulsion -1) * 200 - 100;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
|
|
||||||
void RFReceiver_conf(void);
|
void RFReceiver_conf(TIM_TypeDef * timer, int channel);
|
||||||
|
|
||||||
double RFReceiver_getData(void);
|
float RFReceiver_getData(TIM_TypeDef * timer);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
#include "Voltage.h"
|
#include "Voltage.h"
|
||||||
|
|
||||||
|
|
||||||
void Voltage_conf() {
|
void Voltage_conf(ADC_TypeDef * adc, GPIO_TypeDef * gpio, int pin)
|
||||||
|
{
|
||||||
//On configure le pin qui recevra le signal, ici PC2
|
//On configure le pin qui recevra le signal, ici PC2
|
||||||
GPIO_conf(GPIOC, LL_GPIO_PIN_2, LL_GPIO_MODE_ANALOG, 0, 0);
|
GPIO_conf(gpio, pin, LL_GPIO_MODE_ANALOG, 0, 0);
|
||||||
|
|
||||||
//On configure l'ADC
|
//On configure l'ADC
|
||||||
ADC_conf(ADC2, 12);
|
ADC_conf(adc);
|
||||||
|
|
||||||
//On démarre l'ADC
|
|
||||||
ADC_start(ADC2);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double Voltage_getVoltage() {
|
void Voltage_start(ADC_TypeDef * adc)
|
||||||
|
{
|
||||||
return ADC_readVolt(ADC2);
|
ADC_start(adc);
|
||||||
|
}
|
||||||
|
|
||||||
|
float Voltage_getVoltage(ADC_TypeDef * adc, int channel)
|
||||||
|
{
|
||||||
|
return ADC_readVolt(adc, channel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,10 @@
|
||||||
#include "ADC.h"
|
#include "ADC.h"
|
||||||
#include "GPIO.h"
|
#include "GPIO.h"
|
||||||
|
|
||||||
void Voltage_conf(void);
|
void Voltage_conf(ADC_TypeDef * adc, GPIO_TypeDef * gpio, int pin);
|
||||||
|
|
||||||
double Voltage_getVoltage(void);
|
void Voltage_start(ADC_TypeDef * adc);
|
||||||
|
|
||||||
|
float Voltage_getVoltage(ADC_TypeDef * adc, int channel);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1 +1,27 @@
|
||||||
#include "Display.h"
|
#include "Display.h"
|
||||||
|
#include "Voltage.h"
|
||||||
|
#include "RFEmitter.h"
|
||||||
|
|
||||||
|
USART_TypeDef * EMITTER_USART = USART1;
|
||||||
|
|
||||||
|
ADC_TypeDef * VOLTAGE_ADC = ADC2;
|
||||||
|
const int VOLTAGE_CHANNEL = LL_ADC_CHANNEL_12;
|
||||||
|
GPIO_TypeDef * VOLTAGE_GPIO = GPIOC;
|
||||||
|
const int VOLTAGE_PIN = LL_GPIO_PIN_2;
|
||||||
|
|
||||||
|
void Display_conf()
|
||||||
|
{
|
||||||
|
Voltage_conf(VOLTAGE_ADC, VOLTAGE_GPIO, VOLTAGE_PIN);
|
||||||
|
RFEmitter_conf(EMITTER_USART);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display_start()
|
||||||
|
{
|
||||||
|
Voltage_start(VOLTAGE_ADC);
|
||||||
|
RFEmitter_start(EMITTER_USART);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display_background()
|
||||||
|
{
|
||||||
|
float voltage = Voltage_getVoltage(ADC2, LL_ADC_CHANNEL_12);
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
#ifndef DISPLAY_H
|
#ifndef DISPLAY_H
|
||||||
#define DISPLAY_H
|
#define DISPLAY_H
|
||||||
|
|
||||||
|
void Display_conf(void);
|
||||||
|
|
||||||
|
void Display_start(void);
|
||||||
|
|
||||||
|
void Display_background(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,19 +1,31 @@
|
||||||
#include "Orientation.h"
|
#include "Orientation.h"
|
||||||
#define SEUIL 30
|
#include "math.h"
|
||||||
|
|
||||||
void Orientation_conf() {
|
#define THRESHOLD 30
|
||||||
|
|
||||||
DCMotor_conf();
|
TIM_TypeDef * RECEIVER_TIMER = TIM4;
|
||||||
RFReceiver_conf();
|
const int RECEIVER_CHANNEL = LL_TIM_CHANNEL_CH1;
|
||||||
|
|
||||||
|
TIM_TypeDef * DCMOTOR_TIMER = TIM2;
|
||||||
|
const int DCMOTOR_CHANNEL = LL_TIM_CHANNEL_CH2;
|
||||||
|
GPIO_TypeDef * DCMOTOR_GPIO = GPIOA;
|
||||||
|
const int DCMOTOR_PIN = LL_GPIO_PIN_2;
|
||||||
|
|
||||||
|
void Orientation_conf()
|
||||||
|
{
|
||||||
|
DCMotor_conf(DCMOTOR_TIMER, DCMOTOR_CHANNEL, DCMOTOR_GPIO, DCMOTOR_PIN);
|
||||||
|
RFReceiver_conf(RECEIVER_TIMER, LL_TIM_CHANNEL_CH1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Orientation_background(){
|
void Orientation_background()
|
||||||
|
{
|
||||||
double speed = RFReceiver_getData();
|
const float speed = RFReceiver_getData(RECEIVER_TIMER);
|
||||||
|
|
||||||
//Si la vitesse (en valeur absolue) ne dépasse pas un certain seuil, on ne démarre pas le moteur
|
//Si la vitesse (en valeur absolue) ne dépasse pas un certain seuil, on ne démarre pas le moteur
|
||||||
if (-SEUIL<speed && SEUIL>speed) DCMotor_setSpeed(0);
|
if (THRESHOLD < fabs(speed)) {
|
||||||
else DCMotor_setSpeed(speed);
|
DCMotor_setSpeed(DCMOTOR_TIMER, DCMOTOR_CHANNEL, DCMOTOR_GPIO, DCMOTOR_PIN, 0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
DCMotor_setSpeed(DCMOTOR_TIMER, DCMOTOR_CHANNEL, DCMOTOR_GPIO, DCMOTOR_PIN, speed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
15
Src/Sail.c
15
Src/Sail.c
|
@ -21,6 +21,13 @@ void Sail_conf()
|
||||||
IncrementalEncoder_conf(ENCODER_TIMER, ENCODER_GPIO, ENCODER_PIN);
|
IncrementalEncoder_conf(ENCODER_TIMER, ENCODER_GPIO, ENCODER_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Sail_start()
|
||||||
|
{
|
||||||
|
Sail_isEmergencyState = 0;
|
||||||
|
ServoMotor_start(MOTOR_TIMER);
|
||||||
|
IncrementalEncoder_start(ENCODER_TIMER);
|
||||||
|
}
|
||||||
|
|
||||||
int getSailAngle(int windAngle)
|
int getSailAngle(int windAngle)
|
||||||
{
|
{
|
||||||
if (windAngle > 180)
|
if (windAngle > 180)
|
||||||
|
@ -48,11 +55,3 @@ void Sail_setEmergency(int state)
|
||||||
if (Sail_isEmergencyState)
|
if (Sail_isEmergencyState)
|
||||||
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, RESET_ANGLE);
|
ServoMotor_setAngle(MOTOR_TIMER, MOTOR_CHANNEL, RESET_ANGLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sail_start()
|
|
||||||
{
|
|
||||||
Sail_isEmergencyState = 0;
|
|
||||||
ServoMotor_start(MOTOR_TIMER);
|
|
||||||
IncrementalEncoder_start(ENCODER_TIMER);
|
|
||||||
}
|
|
||||||
|
|
13
Src/main.c
13
Src/main.c
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#include "Sail.h"
|
#include "Sail.h"
|
||||||
#include "Roll.h"
|
#include "Roll.h"
|
||||||
|
#include "Display.h"
|
||||||
|
#include "Orientation.h"
|
||||||
|
|
||||||
#include "Scheduler.h"
|
#include "Scheduler.h"
|
||||||
#include "ADC.h"
|
#include "ADC.h"
|
||||||
|
@ -45,10 +47,12 @@ void backgroundTask()
|
||||||
counter++;
|
counter++;
|
||||||
Sail_background();
|
Sail_background();
|
||||||
Roll_background();
|
Roll_background();
|
||||||
|
Orientation_background();
|
||||||
|
|
||||||
angle = Accelerometer_getAngle(ADC1, LL_ADC_CHANNEL_11);
|
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
|
angle = Accelerometer_getAngle(ADC1, LL_ADC_CHANNEL_11);
|
||||||
|
|
||||||
adcRaw1 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_11);
|
adcRaw1 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_11);
|
||||||
adcRaw2 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_10);
|
adcRaw2 = ADC_readRaw(ADC1, LL_ADC_CHANNEL_10);
|
||||||
adcVolt1 = ADC_convertToVolt(adcRaw1);
|
adcVolt1 = ADC_convertToVolt(adcRaw1);
|
||||||
|
@ -59,6 +63,7 @@ void configurePeripherals()
|
||||||
{
|
{
|
||||||
Sail_conf();
|
Sail_conf();
|
||||||
Roll_conf();
|
Roll_conf();
|
||||||
|
Orientation_conf();
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
ADC_conf(ADC1);
|
ADC_conf(ADC1);
|
||||||
|
@ -68,6 +73,7 @@ void startPeripherals()
|
||||||
{
|
{
|
||||||
Sail_start();
|
Sail_start();
|
||||||
Roll_start();
|
Roll_start();
|
||||||
|
Display_start();
|
||||||
|
|
||||||
// DEBUG
|
// DEBUG
|
||||||
ADC_start(ADC1);
|
ADC_start(ADC1);
|
||||||
|
@ -90,9 +96,8 @@ int main(void)
|
||||||
Scheduler_conf(backgroundTask);
|
Scheduler_conf(backgroundTask);
|
||||||
Scheduler_start();
|
Scheduler_start();
|
||||||
|
|
||||||
while (1)
|
while (1) {
|
||||||
{
|
Display_background();
|
||||||
// Send to display here
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue