Periph-Voilier/Services/MyRF.h
2020-11-24 22:56:56 +01:00

68 lines
1.8 KiB
C

#ifndef MYRF_H
#define MYRF_H
/*
Driver permettant de communiquer via le module RF
La définition des pins utilisées est faites dans un autre fichier (GPIO.c)
RX :
- Timer 4
- Channels 1 et 2
- Broches PB.6 et PB.7
TX :
- USART1
- Broche PA.9 (Données) et PA.11 (Enable)
*/
#include "stm32f103xb.h"
#define GPIOOut GPIOA
#define PinTXEn LL_GPIO_PIN_11
#define TimerCC TIM4
#define channelCC1 LL_TIM_CHANNEL_CH1
#define channelCC2 LL_TIM_CHANNEL_CH2
#define USARTOut USART1
#define TransferDirTX LL_USART_DIRECTION_TX
/**
* @brief Configure le module RF pour la RX et la TX (Timer4 en PWM In sur CH1/2 et USART1)
* @note À lancer en début de pgm
* @note Période TIM4 = 20ms, Transfer Dir USART = TX
* @param None
* @retval None
*/
void MyRF_Conf(void);
/**
* @brief Retourne le rapport cyclique de la PWM en provenance du récepteur RF
* @note Seuil de détection de +-10% autour du 0
* @param None
* @retval int : [-100; 100] pour correspondre à la plage du moteur
*/
int MyRF_Input_Duty_Cycle(void);
/**
* @brief Transmet un message via l'USART vers l'émetteur RF
* @note Message : "<h>h<min>'<sec>" - Bordage : <bordage>% === Le voilier navigue <allure>."
* @param int bordage_pc : pourcentage du bordage des voiles [0; 100]
* @param int angle_vent : angle du vent par rapport au bateau [0; 180]
* @retval None
*/
void MyRF_Transmit_3s(int bordage_pc, int angle_vent);
/**
* @brief Transmet un message via l'USART vers l'émetteur RF
* @note Message : "/!\ BATTERIE FAIBLE /!\"
* @param None
* @retval None
*/
void MyRF_Transmit_Batterie_Faible(void);
/**
* @brief Transmet un message via l'USART vers l'émetteur RF
* @note Message : "/!\ RISQUE DE CHAVIREMENT /!\"
* @param None
* @retval None
*/
void MyRF_Transmit_Limite_Roulis(void);
#endif