No description
Find a file
2025-12-04 12:51:11 +01:00
drivers VF PROJET A ENVOYER 2025-12-04 12:51:11 +01:00
Services VF PROJET A ENVOYER 2025-12-04 12:47:34 +01:00
.gitignore Deuxième version plateau 2025-11-15 16:34:21 +01:00
readme.txt README 2025-12-03 10:52:00 +01:00

Port map carte nucléo :

Plateau :

Timer 3 (channel 3)
? PA1 : Output push pull (bit sens)
! PA9 : Alternate output push pull (UART1 TX, not used)
! PA10 : Floating input (lUART1 RX)
! PB0 : Alternate output push pull (PWM)
prio interruption usart1 : 6


Roulis :

! PA4 : Output push pull (SPI1 NSS)
! PA5 : Alternate output push pull (SPI1 SCK)
! PA6 : Floating input (SPI1 MISO)
! PA7 : Alternate output push pull (SPI1 MOSI)
prio interruption timer2 : 0

Batterie :

?PC4 : Floating input (ADC12 CHANNEL14)
prio interruption ADC : 15


Transmission :

!PA9 : Alternate output push pull (UART1 TX)
Transmet allure du bateau et batterie à UART


Systick :

Créer un timer qui compte par ms avec systick du système

Girouette :

Bordage :



Le service plateau envoie la PWM et le bit de sens en permanence 
Le service roulis renvoie l'angle de roulis
Le service batterie permet maintenant de renvoyer la batterie, nouvelle conversion toutes les Xms
Le service transmission utilise la valeur de la batterie et la valeur de l'angle des voiles pour envoyer à UART toutes les Xms

LE TOUT FONCTIONNE ENSEMBLE : bien ouej




main.c : 

char angle;

int main ( void )
{
	MySystick_Init();
	
	Plateau_Init();
	
	MyRoulis_Init();
	
	MyBatterie_Init();
	
	Transmission_Init();
	
	Init_girouette();
	
	Init_bordage();
	
	while (1){
		angle = 180*MyRoulis_Angle()/3.14;
		Update_bordage(TIM1,1,angle);
		Gestion_Conversion_ADC(); // Pour éviter de faire des conversions en permanence mais toutes les X secondes
		Transmission_allure(Calcul_Angle()); // Transmission de l'allure du bateau
		Transmission_batterie(MyBatterie_val()); // Transmission de la batterie
		Transmission_roulis(angle);
	}
}