forked from acco/chti23
Fin Tp ASM Partie 2, début Partie Son
This commit is contained in:
parent
0a548933bc
commit
4550b7bcf7
5 changed files with 112 additions and 29 deletions
|
@ -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
|
|
@ -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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<TargetName>Simu</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
|
||||
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
|
||||
<uAC6>0</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
|
@ -410,6 +410,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>Son</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>bruitverre.asm</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\bruitverre.asm</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>GestionSon.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
</Group>
|
||||
|
@ -819,6 +834,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>Son</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>bruitverre.asm</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\bruitverre.asm</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>GestionSon.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
<GroupOption>
|
||||
|
@ -897,7 +927,7 @@
|
|||
<TargetName>CibleSondeST</TargetName>
|
||||
<ToolsetNumber>0x4</ToolsetNumber>
|
||||
<ToolsetName>ARM-ADS</ToolsetName>
|
||||
<pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
|
||||
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
|
||||
<uAC6>0</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
|
@ -1297,6 +1327,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>Son</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>bruitverre.asm</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\bruitverre.asm</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>GestionSon.s</FileName>
|
||||
<FileType>2</FileType>
|
||||
<FilePath>.\Src\GestionSon.s</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
</Group>
|
||||
|
@ -1322,12 +1367,7 @@
|
|||
<LayerInfo>
|
||||
<Layers>
|
||||
<Layer>
|
||||
<LayName><Project Info></LayName>
|
||||
<LayDesc></LayDesc>
|
||||
<LayUrl></LayUrl>
|
||||
<LayKeys></LayKeys>
|
||||
<LayCat></LayCat>
|
||||
<LayLic></LayLic>
|
||||
<LayName>StepSon</LayName>
|
||||
<LayTarg>0</LayTarg>
|
||||
<LayPrjMark>1</LayPrjMark>
|
||||
</Layer>
|
||||
|
|
Loading…
Reference in a new issue