diff --git a/dossier/soft/PjtKEIL_StepSon/PWM.asc b/dossier/soft/PjtKEIL_StepSon/PWM.asc
new file mode 100644
index 0000000..5cbcda5
--- /dev/null
+++ b/dossier/soft/PjtKEIL_StepSon/PWM.asc
@@ -0,0 +1,68 @@
+Version 4
+SHEET 1 1084 820
+WIRE 208 16 96 16
+WIRE 784 16 208 16
+WIRE 944 16 864 16
+WIRE 1008 16 944 16
+WIRE -368 80 -512 80
+WIRE 96 96 96 16
+WIRE 944 144 944 16
+WIRE -512 176 -512 80
+WIRE 96 224 96 176
+WIRE 944 256 944 208
+WIRE -512 304 -512 256
+WIRE 96 384 -48 384
+WIRE -48 480 -48 384
+WIRE -48 608 -48 560
+FLAG -512 304 0
+FLAG -368 80 Compteur
+FLAG 944 256 0
+FLAG 1008 16 Filtre
+FLAG -48 608 0
+FLAG 96 384 CompValue
+FLAG 208 16 PWM
+FLAG 96 224 0
+SYMBOL voltage -512 160 R0
+WINDOW 3 -372 78 Left 2
+WINDOW 123 0 0 Left 0
+WINDOW 39 0 0 Left 0
+SYMATTR Value PULSE(0 3.3 0 5u 0 0 5u)
+SYMATTR InstName V1
+SYMBOL cap 928 144 R0
+SYMATTR InstName C1
+SYMATTR Value 10n
+SYMBOL res 880 0 R90
+WINDOW 0 0 56 VBottom 2
+WINDOW 3 32 56 VTop 2
+SYMATTR InstName R1
+SYMATTR Value 3.9k
+SYMBOL voltage -48 464 R0
+WINDOW 3 49 61 Left 2
+WINDOW 123 0 0 Left 0
+WINDOW 39 0 0 Left 0
+SYMATTR Value SINE(1.65 1 2k)
+SYMATTR InstName V2
+SYMBOL bv 96 80 R0
+SYMATTR InstName B1
+SYMATTR Value V=if(V(CompValue)>V(Compteur),3.3,0)
+TEXT 272 256 Left 2 !;ac dec 100 1 10meg
+TEXT 272 296 Left 2 !.tran 0 1.5m 0 0.01u
+TEXT -880 40 Left 2 ;Compteur de l'unité Timer
+TEXT -96 -24 Left 2 ;Partie PWM de l'unité Timer
+TEXT -904 -56 Left 4 ;TIMER3
+TEXT 688 80 Left 4 ;PB0
+TEXT 480 0 Left 2 ;Chanel 3
+TEXT 384 -168 Left 5 ;STM32F103
+LINE Normal 688 48 752 -16
+LINE Normal 688 -16 688 48
+LINE Normal 752 48 688 -16
+LINE Normal 752 48 752 48
+LINE Normal 720 -208 720 -16
+LINE Normal 256 -208 720 -208
+LINE Normal 720 784 720 48
+LINE Normal 720 784 720 784
+LINE Normal 720 816 720 784
+RECTANGLE Normal -192 352 -912 16 2
+RECTANGLE Normal 592 656 -128 -48 2
+RECTANGLE Normal 640 736 -976 -96
+RECTANGLE Normal 752 48 688 -16
diff --git a/dossier/soft/PjtKEIL_StepSon/PWM.net b/dossier/soft/PjtKEIL_StepSon/PWM.net
new file mode 100644
index 0000000..6842c5e
--- /dev/null
+++ b/dossier/soft/PjtKEIL_StepSon/PWM.net
@@ -0,0 +1,16 @@
+* U:\Documents\TP_Pioustolet\Partie ASM\grpE_RAMOUCHE_CASEAU\dossier\soft\PjtKEIL_StepSon\PWM.asc
+V1 Compteur 0 PULSE(0 3.3 0 5u 0 0 5u)
+C1 Filtre 0 10n
+R1 Filtre PWM 3.9k
+V2 CompValue 0 SINE(1.65 1 2k)
+B1 PWM 0 V=if(V(CompValue)>V(Compteur),3.3,0)
+;ac dec 100 1 10meg
+.tran 0 1.5m 0 0.01u
+* Compteur de l'unité Timer
+* Partie PWM de l'unité Timer
+* TIMER3
+* PB0
+* Chanel 3
+* STM32F103
+.backanno
+.end
diff --git a/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s b/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s
index b60fd8a..bbe8f89 100644
--- a/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s
+++ b/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s
@@ -1,7 +1,9 @@
PRESERVE8
- THUMB
+ THUMB
+ ;include DriverJeuLaser.inc
IMPORT Son
IMPORT LongueurSon
+ IMPORT PWM_Set_Value_TIM3_Ch3
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
@@ -63,6 +65,9 @@ ALORS
add r3, #1
ldr r2, =Index
str r3, [r2]
+ ;Appel de la fonction modifiant le rapport cyclique
+ mov r0,r1
+ bl PWM_Set_Value_TIM3_Ch3
FINSI
diff --git a/dossier/soft/PjtKEIL_StepSon/Src/principal.c b/dossier/soft/PjtKEIL_StepSon/Src/principal.c
index 3442433..60b31d8 100644
--- a/dossier/soft/PjtKEIL_StepSon/Src/principal.c
+++ b/dossier/soft/PjtKEIL_StepSon/Src/principal.c
@@ -13,6 +13,9 @@ CLOCK_Configure();
// configuration du Timer 4 en débordement 91µs
Timer_1234_Init_ff(TIM4, 6552); //6552 équivalent à 91µs
+// configuration du Timer 3 pour une PWM de fréquence 100kHz
+PWM_Init_ff(TIM3, 3, 720);
+
//Récupération de la fonction timer_callback() codée en ASM
extern void callbackson();
@@ -22,7 +25,11 @@ Timer_1234_Init_ff(TIM4, 6552); //6552
// 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);
+Active_IT_Debordement_Timer(TIM4, 2, callbackson);
+
+// configuration de PortB.0 (PB0)
+GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
+
//============================================================================
@@ -31,3 +38,18 @@ while (1)
}
}
+/*char FlagCligno;
+
+void timer_callback(void)
+{
+ if (FlagCligno==1)
+ {
+ FlagCligno=0;
+ GPIOB_Set(1);
+ }
+ else
+ {
+ FlagCligno=1;
+ GPIOB_Clear(1);
+ }
+}*/
\ No newline at end of file
diff --git a/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx b/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx
index 2849fe6..f62bcd5 100644
--- a/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx
+++ b/dossier/soft/PjtKEIL_StepSon/StepSon.uvprojx
@@ -408,6 +408,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ DriverJeuLaser.inc
+ 5
+ .\Driver\DriverJeuLaser.inc
+
@@ -832,6 +837,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ DriverJeuLaser.inc
+ 5
+ .\Driver\DriverJeuLaser.inc
+
@@ -1325,6 +1335,11 @@
4
.\Driver\DriverJeuLaser.lib
+
+ DriverJeuLaser.inc
+ 5
+ .\Driver\DriverJeuLaser.inc
+