	PRESERVE8
	THUMB   
		

; ====================== zone de réservation de données,  ======================================
;Section RAM (read only) :
	area    mesdata,data,readonly

	extern Son
	extern PWM_Set_Value_TIM3_Ch3
	extern Active_IT_Debordement_Timer
	
	extern Run_Timer
	extern Bloque_Timer
	extern TIM4

;Section RAM (read write):
	area    maram,data,readwrite
		
			
	
; ===============================================================================================

	export SortieSon
SortieSon 	DCW	0
offset		DCD 11024

		
;Section ROM code (read only) :		
	area    moncode,code,readonly
; écrire le code ici		

	export CallbackSon		
CallbackSon proc
	push {lr}
	ldr r0, =Son
	ldr r3, =offset
	ldr r2, [r3]			; r2 contient l'offset
	ldrsh r0, [r0, r2] 		; r0 contient l'adresse à lire
	add r2, #2
	
	ldr r1, =11024
	cmp r2, r1
	bgt stop
	push {r2}
	
	; Normalisation
	mov r2, #91
	sdiv r0, r0, r2
	add r0, #360
	
	; Output
	ldr r3, =SortieSon
	strh r0, [r3]
	bl PWM_Set_Value_TIM3_Ch3
	
	pop {r2}
	
return
	ldr r3, =offset
	str r2, [r3]
	pop {pc}
	
stop
	b return
	
	endp
		
	
	export StartSon
StartSon proc
	push{lr}
	mov r2, #0
	ldr r3, =offset
	str r2, [r3]
	bl CallbackSon
	pop{pc}
	
	endp
	
	END	