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 ;*******************************************************************************