81 lines
No EOL
1.7 KiB
Text
81 lines
No EOL
1.7 KiB
Text
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);
|
|
}
|
|
} |