diff --git a/Services/Plateau.c b/Services/Plateau.c new file mode 100644 index 0000000..178ad85 --- /dev/null +++ b/Services/Plateau.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include "GPIO.h" +#include "ADC.h" +#include "USART.h" + +void handler_USART1 (void) { +//Pour le projet : Lancer PWM en fonction de la valeur du curseur + char data = USART1->DR; + char valabs; + if (data & (1<<7)) { + MyGPIO_Set(GPIOA, 1); + valabs = 2^7 - (data & 0x7F); + Mytimer_PWM_cycle(TIM3, 3, valabs); + } + else { + MyGPIO_Reset(GPIOA, 1); + Mytimer_PWM_cycle(TIM3, 3, data); + } + MyTimer_Base_Start(TIM3); +} + +void Plateau_Init (void){ + MyGPIO_Init(GPIOB,0,AltOut_Ppull); + MyGPIO_Init(GPIOA,1,Out_Ppull); + MyTimer_Init(TIM3, 360, 10); + Mytimer_PWM(TIM3, 3); + My_USART_Init(USART1); + MyUSART_ActiveIT(USART1, 6, &handler_USART1); +} + diff --git a/Services/Plateau.h b/Services/Plateau.h new file mode 100644 index 0000000..05eff78 --- /dev/null +++ b/Services/Plateau.h @@ -0,0 +1,7 @@ +#ifndef MYPLATEAU_H +#define MYPLATEAU_H + +void Plateau_Init (void); +void handler_USART1 (void); + +#endif \ No newline at end of file diff --git a/drivers/USART.c b/drivers/USART.c index 113100f..2276080 100644 --- a/drivers/USART.c +++ b/drivers/USART.c @@ -1,5 +1,5 @@ #include -#include +#include "USART.h" #include void (*ptr_fct_u1) (void); diff --git a/drivers/USART.h b/drivers/USART.h index 70bd457..0967f3e 100644 --- a/drivers/USART.h +++ b/drivers/USART.h @@ -8,7 +8,6 @@ void My_USART_Init(USART_TypeDef *USART); void send_USART(USART_TypeDef *USART, char data); char read_USART(USART_TypeDef *USART); -void My_USART_ActiveIT_send(USART_TypeDef *USART); -void My_USART_ActiveIT_read(USART_TypeDef *USART); +void MyUSART_ActiveIT(USART_TypeDef *USART, int Prio, void (*IT_function) (void)); #endif \ No newline at end of file