Envoie de batterie propre
This commit is contained in:
parent
829efa26f8
commit
4fe43b9d7a
3 changed files with 22 additions and 9 deletions
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
float d;
|
||||
int p;
|
||||
uint32_t cpt = 0;
|
||||
|
||||
void MyBatterie_Init(void){
|
||||
MyGPIO_Init(GPIOC,4,In_Analog); // Init PORT pour recevoir tension
|
||||
|
|
@ -19,14 +20,17 @@ void MyBatterie_Init(void){
|
|||
}
|
||||
|
||||
void handler_ADC (void){
|
||||
d = ADC1->DR &~ (0xF << 12); // Retourne valeur numérique
|
||||
d = d*3.3/4096;
|
||||
d = d*13*100/12;
|
||||
//if ((p%10 > (int)d%10+2) || (p%10 < (int)d%10-2)){
|
||||
p = (int) d;
|
||||
send_USART(USART1,(p/10) + '0'); // Envoie le chiffre des dizaines
|
||||
send_USART(USART1,(p%10) + '0'); // Envoie le chiffre des unités
|
||||
send_USART(USART1,'%');
|
||||
//}
|
||||
cpt++;
|
||||
if (cpt >= 400000) {
|
||||
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(USART1,'%');
|
||||
send_USART(USART1,'\r');
|
||||
cpt = 0;
|
||||
}
|
||||
start_conversion(ADC1); // Recommence la conversion pour le prochain
|
||||
}
|
||||
|
|
@ -38,6 +38,13 @@ void send_USART(USART_TypeDef *USART, char data){
|
|||
while(!(USART->SR & USART_SR_TXE)) {} // Attente de la fin de transmission --TC ????? Inverser 2 lignes +TC a la fin
|
||||
}
|
||||
|
||||
void send_USART_String(USART_TypeDef* USARTx, char* s) {
|
||||
while (*s != '\0') {
|
||||
send_USART(USARTx, *s); // ta fonction qui envoie un char
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
char read_USART(USART_TypeDef *USART){
|
||||
while (!(USART->SR & USART_SR_RXNE)){}
|
||||
return USART->DR;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
#ifndef MYUSART_H
|
||||
#define MYUSART_H
|
||||
#include <stm32f10x.h>
|
||||
#include <math.h>
|
||||
|
||||
#define send_USART_init(USART) USART->CR1 |= USART_CR1_TE; // Envoi de la première trame d'attente
|
||||
#define read_USART_init(USART) USART->CR1 |= USART_CR1_RE; // En attente du premier bit de start
|
||||
|
||||
void My_USART_Init(USART_TypeDef *USART);
|
||||
void send_USART(USART_TypeDef *USART, char data);
|
||||
void send_USART_String(USART_TypeDef *USART, char* s);
|
||||
char read_USART(USART_TypeDef *USART);
|
||||
void MyUSART_ActiveIT(USART_TypeDef *USART, int Prio, void (*IT_function) (void));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue