be_chti/Src/signalCarre.s
2020-05-27 11:13:45 +02:00

48 lines
No EOL
635 B
ArmAsm

; ce programme est pour l'assembleur RealView (Keil)
thumb
area moncode, code, readonly
export timer_callback
extern etat
;
E_POS equ 0
E_TAI equ 4
E_SON equ 8
E_RES equ 12
E_PER equ 16
TIM3_CCR3 equ 0x4000043C ; adresse registre PWM
timer_callback proc
push{r4}
ldr r1, =etat
ldr r2, [r1, #E_POS]
ldr r3, [r1,#E_TAI]
cmp r2, r3
beq silence
bne son
son ldr r4, [r1, #E_RES]
ldr r3, [r1, #E_SON]
ldrsh r3, [r3, r2,lsl #1]
add r3, r3, lsl #16
mul r3, r3, r4
lsr r3, #16
;add r3, r3, r4
;lsl r3, #1
ldr r4, =TIM3_CCR3
str r3, [r4]
add r2,#1
str r2,[r1, #E_POS]
silence
pop{r4}
bx lr
endp
end