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