diff --git a/dossier/soft/PjtKEIL_StepDeb_2/Src/Cligno.s b/dossier/soft/PjtKEIL_StepDeb_2/Src/Cligno.s index d493e45..1c63d0b 100644 --- a/dossier/soft/PjtKEIL_StepDeb_2/Src/Cligno.s +++ b/dossier/soft/PjtKEIL_StepDeb_2/Src/Cligno.s @@ -14,9 +14,11 @@ FlagCligno dcd 0 EXPORT FlagCligno ; =============================================================================================== + +;Exportation de la fonction timer_callback() + EXPORT timer_callback + - - ;Section ROM code (read only) : area moncode,code,readonly @@ -24,32 +26,29 @@ FlagCligno dcd 0 timer_callback proc - ldr r0, =FlagCligno ; on affecte à r0 l'adresse de FlagCligno - ldr r1, [r0] ; on affecte à r1 la valeur contenu dans r0 (pointeur) - push{r0} push{lr} - + ldr r1, =FlagCligno ; on affecte à r1 l'adresse de FlagCligno (r1 = pointeur sur FlagCligno) + ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1 + SI - cmp r1, #0 ; si r1 = 0 + cmp r2, #0 ; si Flag = 0 bne SINON -ALORS ; on passe r1 à 0 + on allume B1 - mov r1, #0 +ALORS ; on passe Flag à 1 + on allume B1 mov r2, #1 + mov r0, #1 ; sert juste à passer 1 en argument à GPIOB_Set bl GPIOB_Set - bl FINSI + b FINSI -SINON ; sinon on passe r1 à 1 + on éteint B1 - mov r1, #1 - mov r2, #1 +SINON ; sinon on passe Flag à 0 + on éteint B1 + mov r2, #0 + mov r0, #1 ; sert juste à passer 1 en argument à GPIOB_Set bl GPIOB_Clear FINSI - str r1, [r0] ; on stocke la nouvelle valeur de r1 dans r0 (on met à jour FlagCligno) + ldr r1, =FlagCligno + str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagCligno) + pop {PC} endp - - - - END \ No newline at end of file diff --git a/dossier/soft/PjtKEIL_StepDeb_2/Src/principal.c b/dossier/soft/PjtKEIL_StepDeb_2/Src/principal.c index 4e73948..d43951b 100644 --- a/dossier/soft/PjtKEIL_StepDeb_2/Src/principal.c +++ b/dossier/soft/PjtKEIL_StepDeb_2/Src/principal.c @@ -18,6 +18,9 @@ CLOCK_Configure(); Timer_1234_Init_ff(TIM4, 7200000); //7 200 000 équivalent à 100ms +//Récupération de la fonction timer_callback() codée en ASM + extern void timer_callback(); + // Activation des interruptions issues du Timer 4 @@ -38,6 +41,7 @@ GPIO_Configure(GPIOB, 1, OUTPUT, OUTPUT_PPULL); while (1) { + } } diff --git a/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s b/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s index 8a75b7a..c28a2d0 100644 --- a/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s +++ b/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s @@ -10,10 +10,20 @@ ;Section RAM (read write): area maram,data,readwrite +FlagSon dcb 0 + EXPORT FlagSon - +SortieSon dcw 0 + EXPORT SortieSon + +Index dcw 0 + EXPORT Index + +;LDRD{cond} Rt, Rt2, [Rn, ±Rm] ; register offset, doubleword ; ARM only <-- INSTRUCTION A UTILISER ; =============================================================================================== +;Exportation de la fonction callbackson() + EXPORT callbackson @@ -22,8 +32,29 @@ ; écrire le code ici +callbackson proc + + push{lr} + ldr r1, =FlagSon ; on affecte à r1 l'adresse de FlagSon (r1 = pointeur sur FlagSon) + ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1 +SI + cmp r2, #0 ; si Flag = 0 + bne SINON + +ALORS ; on passe Flag à 1 + on allume B1 + mov r2, #1 + b FINSI + +SINON ; sinon on passe Flag à 0 + on éteint B1 + mov r2, #0 +FINSI + ldr r1, =FlagSon + str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagSon) + + pop {PC} + endp diff --git a/dossier/soft/PjtKEIL_StepSon/Src/principal.c b/dossier/soft/PjtKEIL_StepSon/Src/principal.c index d09be75..01cd9ae 100644 --- a/dossier/soft/PjtKEIL_StepSon/Src/principal.c +++ b/dossier/soft/PjtKEIL_StepSon/Src/principal.c @@ -14,13 +14,22 @@ int main(void) // Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers CLOCK_Configure(); - +// configuration du Timer 4 en débordement 91µs +Timer_1234_Init_ff(TIM4, 6552); //6552 équivalent à 91µs + +//Récupération de la fonction timer_callback() codée en ASM + extern void callbackson(); + +// Activation des interruptions issues du Timer 4 +// Association de la fonction à exécuter lors de l'interruption : timer_callback +// cette fonction (si écrite en ASM) doit être conforme à l'AAPCS + +Active_IT_Debordement_Timer(TIM4, 2, callbackson); //============================================================================ - while (1) { } diff --git a/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx b/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx index d0b5c10..2849fe6 100644 --- a/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx +++ b/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx @@ -10,7 +10,7 @@ Simu 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -410,6 +410,21 @@ + + Son + + + bruitverre.asm + 2 + .\Src\bruitverre.asm + + + GestionSon.s + 2 + .\Src\GestionSon.s + + + ::CMSIS @@ -819,6 +834,21 @@ + + Son + + + bruitverre.asm + 2 + .\Src\bruitverre.asm + + + GestionSon.s + 2 + .\Src\GestionSon.s + + + ::CMSIS @@ -897,7 +927,7 @@ CibleSondeST 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::.\ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -1297,6 +1327,21 @@ + + Son + + + bruitverre.asm + 2 + .\Src\bruitverre.asm + + + GestionSon.s + 2 + .\Src\GestionSon.s + + + ::CMSIS @@ -1322,12 +1367,7 @@ - <Project Info> - - - - - + StepSon 0 1