Systick implémenté
This commit is contained in:
parent
bb16e3508a
commit
9bda2e8891
4 changed files with 42 additions and 13 deletions
|
|
@ -4,9 +4,9 @@
|
|||
#include <ADC.h>
|
||||
#include <USART.h>
|
||||
|
||||
extern uint32_t tickms;
|
||||
float d;
|
||||
int p;
|
||||
uint32_t cpt = 0;
|
||||
uint32_t last2 = 0;
|
||||
|
||||
void MyBatterie_Init(void){
|
||||
MyGPIO_Init(GPIOC,4,In_Analog); // Init PORT pour recevoir tension
|
||||
|
|
@ -20,16 +20,16 @@ void MyBatterie_Init(void){
|
|||
}
|
||||
|
||||
void handler_ADC (void){
|
||||
cpt++;
|
||||
if (cpt >= 400000) {
|
||||
//last2++;
|
||||
if (tickms - last2 >= 2000) {
|
||||
last2 = tickms;
|
||||
d = ADC1->DR &~ (0xF << 12); // Retourne valeur numérique
|
||||
d = d*3.3/4096;
|
||||
d = d*13*100/12;
|
||||
send_USART_String(USART1,"Batterie : ");
|
||||
send_USART(USART1,((int)d/10) + '0'); // Envoie le chiffre des dizaines
|
||||
send_USART(USART1,((int)d%10) + '0'); // Envoie le chiffre des unités
|
||||
send_USART_String(USART1,"%\r");
|
||||
cpt = 0;
|
||||
send_USART_String(USART1,"%\n");
|
||||
}
|
||||
start_conversion(ADC1); // Recommence la conversion pour le prochain
|
||||
}
|
||||
17
Services/Systick.c
Normal file
17
Services/Systick.c
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#include <stm32f10x.h>
|
||||
#include <Systick.h>
|
||||
|
||||
uint32_t tickms = 0;
|
||||
|
||||
void MySystick_Init(void){
|
||||
SystemCoreClockUpdate();
|
||||
SysTick->LOAD = (SystemCoreClock/1000)-1;
|
||||
SysTick->VAL = 0;
|
||||
SysTick->CTRL |= SysTick_CTRL_ENABLE;
|
||||
SysTick->CTRL |= SysTick_CTRL_CLKSOURCE;
|
||||
SysTick->CTRL |= SysTick_CTRL_TICKINT;
|
||||
}
|
||||
|
||||
void SysTick_Handler(void){
|
||||
tickms++;
|
||||
}
|
||||
6
Services/Systick.h
Normal file
6
Services/Systick.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef SYSTICK_H
|
||||
#define SYSTICK_H
|
||||
|
||||
void MySystick_Init(void);
|
||||
|
||||
#endif
|
||||
|
|
@ -2,16 +2,22 @@
|
|||
#include <Transmission.h>
|
||||
#include <USART.h>
|
||||
|
||||
extern uint32_t tickms;
|
||||
uint32_t last1 = 0;
|
||||
|
||||
void Transmission_Init(void){
|
||||
My_USART_Init(USART1);
|
||||
}
|
||||
|
||||
void Transmission_allure(int angle_voiles){
|
||||
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");
|
||||
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");
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue