65 lines
No EOL
2.2 KiB
C
65 lines
No EOL
2.2 KiB
C
#include <stm32f10x.h>
|
|
#include <Transmission.h>
|
|
#include <USART.h>
|
|
|
|
extern uint32_t tickms;
|
|
uint32_t last1 = 0;
|
|
uint32_t last3 = 0;
|
|
uint32_t last4 = 0;
|
|
|
|
void Transmission_Init(void){
|
|
My_USART_Init(USART1);
|
|
}
|
|
|
|
void Transmission_allure(int angle_voiles){
|
|
if (tickms-last1 >= 5000){
|
|
last1 = tickms;
|
|
if (angle_voiles < 23) send_USART_String(USART1,"Le bateau navigue vent debout. \n");
|
|
else if (angle_voiles < 27) send_USART_String(USART1,"Le bateau navigue au pres. \n");
|
|
else if (angle_voiles < 38) send_USART_String(USART1,"Le bateau navigue au pres bon plein. \n");
|
|
else if (angle_voiles < 53) send_USART_String(USART1,"Le bateau navigue au travers. \n");
|
|
else if (angle_voiles < 71) send_USART_String(USART1,"Le bateau navigue au grand large. \n");
|
|
else if (angle_voiles <= 90) send_USART_String(USART1,"Le bateau navigue vent arriere. \n");
|
|
else send_USART_String(USART1,"ERREUR DANS L'ANGLE!! \n");
|
|
}
|
|
}
|
|
|
|
void Transmission_batterie(int batterie){
|
|
if (tickms-last3 >= 5000){
|
|
last3 = tickms;
|
|
if(batterie > 50){
|
|
send_USART_String(USART1,"Batterie : ");
|
|
}
|
|
else{
|
|
send_USART_String(USART1, "SEUIL DE BATTERIE ATTEINT : ");
|
|
}
|
|
send_USART(USART1,(batterie/10) + '0'); // Envoie le chiffre des dizaines
|
|
send_USART(USART1,(batterie%10) + '0'); // Envoie le chiffre des unités
|
|
send_USART_String(USART1,"%\n");
|
|
}
|
|
}
|
|
|
|
void Transmission_roulis(char roulis){
|
|
char angabs;
|
|
if (tickms-last4 >= 2000){
|
|
last4 = tickms;
|
|
if (roulis >= 40 && !(roulis & (1<<7))){
|
|
send_USART_String(USART1, "ANGLE DE ROULIS TROP ELEVE : DEBORDAGE!!! \n");
|
|
send_USART(USART1,(roulis/10) + '0'); // Envoie le chiffre des dizaines
|
|
send_USART(USART1,(roulis%10) + '0'); // Envoie le chiffre des unités
|
|
}
|
|
else if (roulis & (1<<7)) {
|
|
angabs = (1<<7) - (roulis & 0x7F);
|
|
if (angabs >= 40) send_USART_String(USART1, "ANGLE DE ROULIS TROP ELEVE : DEBORDAGE!!! \n");
|
|
else send_USART_String(USART1, "Angle de roulis : ");
|
|
send_USART(USART1,(angabs/10) + '0');
|
|
send_USART(USART1,(angabs%10) + '0');
|
|
}
|
|
else {
|
|
send_USART_String(USART1, "Angle de roulis : ");
|
|
send_USART(USART1,(roulis/10) + '0'); // Envoie le chiffre des dizaines
|
|
send_USART(USART1,(roulis%10) + '0'); // Envoie le chiffre des unités
|
|
}
|
|
send_USART_String(USART1," degre(s)\n");
|
|
}
|
|
} |