Ajouter des commentaires et enlever des redondances

This commit is contained in:
Oskar Orvik 2025-11-09 22:28:11 +01:00
parent 1283e0f110
commit cd739176a3
10 changed files with 49 additions and 60 deletions

View file

@ -1,4 +1,8 @@
// Gestion des signaux
extern int ChercherEtat(GPIO_TypeDef * GPIO, int pin); extern int ChercherEtat(GPIO_TypeDef * GPIO, int pin);
extern void ResetBroche(uint32_t GPIO, int Broche); extern void ResetBroche(uint32_t GPIO, int Broche);
extern void SetBroche(uint32_t GPIO, int Broche); extern void SetBroche(uint32_t GPIO, int Broche);
extern void TogglePin(GPIO_TypeDef*GPIO, int Broche);
// Config des broches
extern void ConfigureBroche(uint32_t GPIO, int Broche, int IO, char Mode); extern void ConfigureBroche(uint32_t GPIO, int Broche, int IO, char Mode);

View file

@ -1,20 +1,11 @@
#include "stm32f10x.h" #include "stm32f10x.h"
//TIMERS //TIMERS start
extern void MyTimer_Base_Init ( TIM_TypeDef * Timer , unsigned short ValARR , unsigned short ValPSC );
extern void EnableTimer(void);
extern void ConfigureBroches();
extern void ConfigureTimers();
#define MyTimer_Base_Start(Timer) (Timer->CR1 |= TIM_CR1_CEN) #define MyTimer_Base_Start(Timer) (Timer->CR1 |= TIM_CR1_CEN)
#define MyTimer_Base_Stop(Timer) (Timer -> CR1 =(0x0)) #define MyTimer_Base_Stop(Timer) (Timer -> CR1 =(0x0))
// IT
extern volatile int g_tick_count; // Declara que a variável existe em outro arquivo extern volatile int g_tick_count; // Declara que a variável existe em outro arquivo
extern void TIM2_IRQHandler(void);
extern void TIM3_IRQHandler(void);
extern void TIM4_IRQHandler(void);
extern void MyTimer_ActiveIT(TIM_TypeDef *Timer, char Prio,void(*IT_function)(void));
//PWM
extern void MyTimer_PWM(TIM_TypeDef *Timer, char Channel);
extern void MyTimer_Set_DutyCycle(TIM_TypeDef *Timer, char Channel, float DutyCycle_Percent);
void Test(void); void Test(void);
void ConfigureIT(); void ConfigureIT();
void ConfigurePWM(); // PWM
void ConfigurePWM();

View file

@ -1,7 +1,8 @@
#include "stm32f10x.h" #include "stm32f10x.h"
// Config
extern void ConfigHorloge(void); extern void ConfigHorloge(void);
extern void ConfigBroche(void); extern void ConfigBroche(void);
// Gestion des IO Spesifiques
extern int BoutonAppuye(void); extern int BoutonAppuye(void);
extern void AllumerLED(void); extern void AllumerLED(void);
extern void EteindreLED(void); extern void EteindreLED(void);
extern void TogglePin(GPIO_TypeDef*GPIO, int Broche);

View file

@ -1,3 +1,4 @@
#include "stm32f10x.h" #include "stm32f10x.h"
// Config
extern void MyTimer_PWM(TIM_TypeDef *Timer, char Channel); extern void MyTimer_PWM(TIM_TypeDef *Timer, char Channel);
extern void MyTimer_Set_DutyCycle(TIM_TypeDef *Timer, char Channel, float DutyCycle_Percent); extern void MyTimer_Set_DutyCycle(TIM_TypeDef *Timer, char Channel, float DutyCycle_Percent);

View file

@ -1,6 +1,12 @@
#include "stm32f10x.h" #include "stm32f10x.h"
// Config de timer
extern void MyTimer_Base_Init(TIM_TypeDef *Timer , unsigned short ValARR , unsigned short ValPSC ); extern void MyTimer_Base_Init(TIM_TypeDef *Timer , unsigned short ValARR , unsigned short ValPSC );
extern void MyTimer_ActiveIT(TIM_TypeDef *Timer, char Prio,void(*IT_function)(void)); extern void MyTimer_ActiveIT(TIM_TypeDef *Timer, char Prio,void(*IT_function)(void));
extern void EnableTimer(); // Fonctions d'interruption
extern void TIM2_IRQHandler(void);
extern void TIM3_IRQHandler(void);
extern void TIM4_IRQHandler(void);
extern void TIM1_CC_IRQnHandler(void); extern void TIM1_CC_IRQnHandler(void);
extern void TIM1_UP_IRQnHandler(void); extern void TIM1_UP_IRQnHandler(void);
// Enable timers
extern void EnableTimer();

View file

@ -1,5 +1,6 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#include <stdlib.h> #include <stdlib.h>
#include "../Include/GPIO.h"
int ChercherEtat(GPIO_TypeDef * GPIO, int pin){ // Trouvons la valeur d'un broche sur un certain GPIO int ChercherEtat(GPIO_TypeDef * GPIO, int pin){ // Trouvons la valeur d'un broche sur un certain GPIO
return((GPIO -> IDR & (0x01 << pin))); return((GPIO -> IDR & (0x01 << pin)));
@ -13,6 +14,10 @@ void SetBroche(uint32_t GPIO, int Broche){ // Mettre à zero d'un certain broche
GPIO -> BSRR |= BSBroche << 16; GPIO -> BSRR |= BSBroche << 16;
} }
void TogglePin(GPIO_TypeDef*GPIO, int Broche){ // Inverser la valueur de broche sur GPIO
GPIO -> ODR = GPIO -> ODR ^ (0x1 << Broche);
}
void ConfigureGPIO(uint32_t GPIO, int Broche, int IO, char Mode){ // Mettre un broche d'un GPIO sur un mode void ConfigureGPIO(uint32_t GPIO, int Broche, int IO, char Mode){ // Mettre un broche d'un GPIO sur un mode
// Possble de améliorer avec des int à la place de string // Possble de améliorer avec des int à la place de string
//Start clock pour les GPIO concernés //Start clock pour les GPIO concernés

View file

@ -1,8 +1,7 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#include "Nucleo.h" #include "../Include/Timer.h"
#include "Timer.h" #include "../Include/PWM.h"
#include "PWM.h" #include "../Include/GPIO.h"
#include "GPIO.h"
// Variables // Variables
#define ARR_TIM1 0xFFAD #define ARR_TIM1 0xFFAD
#define PSC_TIM1 0xFF #define PSC_TIM1 0xFF
@ -18,30 +17,6 @@ void Test(void){
TogglePin(GPIOA, 8); TogglePin(GPIOA, 8);
} }
void ConfigureBroches(){
ConfigureGPIO(GPIOA, 6, 4, Push-Pull); // Cela équivaut à :
// GPIOA->CRL &= ~(0xF << 6*4); // clean pin 6
// GPIOA->CRL |= (0xB << 6*4); // Alternate Function output, Push-Pull max 50 Hz
// Exemples d'_tilisation
//Mettre Broche 5 sur input Pull-up/down
ConfigureGPIO(GPIOC, 3, 0, Pull-Up);
//GPIOC ->CRL &= ~(0xF << (4 *3));
//GPIOC ->CRL |= (0x1 << (4 *3));
//Mettre Broche 5 sur input Pull-up/down
ConfigureGPIO(GPIOA, 5, 0, Pull-Up);
//GPIOA ->CRL &= ~(0xF << (4 *5));
//GPIOA ->CRL |= (0x3 << (4 *5));
//Mettre Broche D7 sur input Open drain
ConfigureGPIO(GPIOA, 0, 0, Open-Drain);
//GPIOA ->CRH &= ~(0xF << (4 *0));
//GPIOA ->CRH |= (0x7 << (4 *0));
}
void ConfigureTimers(){ void ConfigureTimers(){
MyTimer_Base_Init(TIM2, ARR_TIM2, PSC_TIM2); MyTimer_Base_Init(TIM2, ARR_TIM2, PSC_TIM2);
MyTimer_Base_Init(TIM1, ARR_TIM1, PSC_TIM1); MyTimer_Base_Init(TIM1, ARR_TIM1, PSC_TIM1);

View file

@ -1,31 +1,37 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#include "../Include/Nucleo.h"
#include "GPIO.h"
void ConfigHorloge(void) { // Peut-être redondant ?? void ConfigHorloge(void) { // Peut-être redondant ??
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_TIM1EN; RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4) | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_TIM1EN;
}; };
void ConfigBroche(void){ // void ConfigBroche(void){ //
//Mettre Broche 5 GPIOA à output push-pull //Mettre Broche 5 GPIOA à output push-pull
GPIOA ->CRL &= ~(0x1 << (5*4 + 2)); //0x44144444; ConfigureGPIO(GPIOA, 5, 4, Push-Pull);
GPIOA ->CRL |= (0x1 << 5*4); //0x44144444; // Equivaut à :
//GPIOA ->CRL &= ~(0x1 << (5*4 + 2)); //0x44144444;
//Mettre Broche 5 sur input Pull-up/down //GPIOA ->CRL |= (0x1 << 5*4); //0x44144444;
GPIOA ->CRH &= ~(0x1 << (4 + 2));
GPIOA ->CRH |= (0x1 << (4 + 3));
//Mettre broche 8 sur GPIOA à output open drain //Mettre broche 8 sur GPIOA à output open drain
GPIOA ->CRH |= (0x1 ); ConfigureGPIO(GPIOA, 8, 4, Open-Drain);
// Equivaut à :
//GPIOA ->CRH |= (0x1 );
}; };
int BoutonAppuye(void){ // Peut être modifié avec ChercherEtat int BoutonAppuye(void){ // Peut être modifié avec ChercherEtat
return((GPIOA -> IDR & (0x01 << 9))); ChercherEtat(GPIOA, 9);
// Equivaut à
//return((GPIOA -> IDR & (0x01 << 9)));
} }
void AllumerLED(void){ void AllumerLED(void){
GPIOA -> ODR &= ~(0x1 << 8); // Peut être modifié avec SetBroche SetBroche(GPIOA, 8);
// Equivaut à :
//GPIOA -> ODR &= ~(0x1 << 8); // Peut être modifié avec SetBroche
} }
void EteindreLED(void){ void EteindreLED(void){
GPIOA -> ODR |= (0x1 << 8); // Peut être modifié avec ResetBroche ResetBroche(GPIOA, 8);
} // Equivaut à :
void TogglePin(GPIO_TypeDef*GPIO, int Broche){ // Redondant //GPIOA -> ODR |= (0x1 << 8); // Peut être modifié avec ResetBroche
GPIO -> ODR = GPIO -> ODR ^ (0x1 << Broche);
} }

View file

@ -1,5 +1,5 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#include "PWM.h" #include "../Include/PWM.h"
void MyTimer_PWM(TIM_TypeDef *Timer, char Channel) { // Activer PWM sur un output void MyTimer_PWM(TIM_TypeDef *Timer, char Channel) { // Activer PWM sur un output

View file

@ -1,5 +1,5 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#include "Nucleo.h" #include "../Include/Timer.h"
//REMEMBER TO ENALBLE TIMERS //REMEMBER TO ENALBLE TIMERS
//EXAMPLES //EXAMPLES