diff --git a/Etape_3.uvoptx b/Etape_3.uvoptx
index 3792be7..a14306c 100644
--- a/Etape_3.uvoptx
+++ b/Etape_3.uvoptx
@@ -75,7 +75,7 @@
1
0
- 1
+ 0
18
@@ -125,7 +125,7 @@
0
DLGDARM
- (1010=1003,355,1379,912,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=15,39,661,712,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1462,180,1883,607,1)(121=1499,392,1920,819,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1088,133,1682,884,1)(131=255,99,849,850,0)(132=49,93,643,844,0)(133=0,32,594,783,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+ (1010=1003,355,1379,912,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=15,39,661,712,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1462,180,1883,607,1)(121=1499,392,1920,819,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=1088,133,1682,884,1)(131=255,99,849,850,0)(132=49,93,643,844,0)(133=867,101,1461,852,1)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
0
@@ -142,23 +142,7 @@
0
0
- 81
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- .\FonctionEtape3.asm
-
-
-
-
- 1
- 0
- 54
+ 56
1
134222998
0
@@ -169,39 +153,7 @@
1
.\FonctionEtape3.asm
- \\Simu_Etape0\FonctionEtape3.asm\54
-
-
- 2
- 0
- 55
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- .\FonctionEtape3.asm
-
-
-
-
- 3
- 0
- 82
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- .\FonctionEtape3.asm
-
-
+ \\Simu_Etape0\FonctionEtape3.asm\56
@@ -342,7 +294,7 @@
1
0
- 0
+ 1
18
diff --git a/FonctionEtape3.asm b/FonctionEtape3.asm
index 6bd2564..63d27db 100644
--- a/FonctionEtape3.asm
+++ b/FonctionEtape3.asm
@@ -19,6 +19,7 @@
EXPORT Timer1_IRQHandler
EXPORT Timer1Up_IRQHandler
EXPORT setIRQFunction
+ EXPORT Timer4_IRQHandler
IMPORT DriverReg
IMPORT Tempo
@@ -52,7 +53,42 @@ TVI_Flash EQU 0x0
Timer1_IRQHandler PROC
PUSH {LR}
+ ;On récupère le CNT, on le divise par le nombre de jeu de leds -> on affect le ARR du timer4
+ LDR R0,=TIM1_CNT
+ LDR R0,[R0]
+ MOV R1,#2
+ UDIV R0, R0, R1
+ LDR R1,=TIM4_ARR
+ STR R0,[R1]
+
+ LDR R0,=TIM1_CNT
+ MOV R1,#0
+ STR R1,[R0]
+
+ LDR R0,=TIM1_SR ;On charge l'adresse du flag
+ LDR R1, [R0] ;On lit le flag dans SR
+ AND R1, #~(1<<1) ;Reset le flag de CC1IF
+ STR R1, [R0] ;On le stock
BL Run_Timer4
+ POP {LR}
+ BX LR
+ ENDP
+
+Timer1Up_IRQHandler PROC
+ PUSH {LR}
+ BL Stop_Timer4
+ LDR R0,=TIM1_SR ;On charge l'adresse du flag
+ LDR R1, [R0] ;On lit le flag dans SR
+ AND R1, #~(1<<0) ;Reset le flag de UIF
+ STR R1, [R0] ;On le stock
+ POP {LR}
+ BX LR
+ ENDP
+
+Timer4_IRQHandler PROC
+ ; SwitchState;
+ PUSH {LR}
+
LDR R2,=SwitchState ;On lit l'adresse de switch state
LDRB R3,[R2] ;On charge la donnée
CMP R3, #0 ;if(Switchstate == 0)
@@ -68,21 +104,10 @@ SETBarrette1
STRB R3,[R2] ;On remet la donnée
GoToDriverReg
BL DriverReg ;DriverReg(Barette3)
- LDR R0,=TIM1_SR ;On charge l'adresse du flag
+
+ LDR R0,=TIM4_SR ;On charge l'adresse du flag
LDR R1, [R0] ;On lit le flag dans SR
- AND R1, #~(1<<1) ;Reset le flag du SR
- STR R1, [R0] ;On le stock
- BL Stop_Timer4
- POP {LR}
- BX LR
- ENDP
-
-Timer1Up_IRQHandler PROC
- PUSH {LR}
- BL Stop_Timer4
- LDR R0,=TIM1_SR ;On charge l'adresse du flag
- LDR R1, [R0] ;On lit le flag dans SR
- AND R1, #~(1<<0) ;Reset le flag du SR
+ AND R1, #~(1<<0) ;Reset le flag de UIF
STR R1, [R0] ;On le stock
POP {LR}
BX LR
diff --git a/Principale.asm b/Principale.asm
index 6aa9ec0..ed5b7c8 100644
--- a/Principale.asm
+++ b/Principale.asm
@@ -44,6 +44,7 @@
IMPORT Timer1_IRQHandler
IMPORT Timer1Up_IRQHandler
IMPORT setIRQFunction
+ IMPORT Timer4_IRQHandler
EXPORT main
@@ -54,6 +55,7 @@
M EQU 20
Timer_Up_Reg EQU (25*4)+0x40
Timer_Cc_Reg EQU (27*4)+0x40
+Timer4_Reg EQU (30*4)+0x40
;***************CODE************************************************************
AREA moncode, code, readonly
@@ -73,6 +75,9 @@ main PROC
MOV R0, #Timer_Cc_Reg
LDR R1,=Timer1_IRQHandler
BL setIRQFunction
+ MOV R0, #Timer4_Reg
+ LDR R1,=Timer4_IRQHandler
+ BL setIRQFunction
BL Run_Timer3 ;Allumage du Timer 3
BL Run_Timer1
;*******************************************************************************