ARM Macro Assembler Page 1 1 00000000 PRESERVE8 2 00000000 THUMB 3 00000000 4 00000000 export CallbackSon 5 00000000 export StartSon 6 00000000 import Son 7 00000000 import LongueurSon 8 00000000 9 00000000 include DriverJeuLaser.inc 1 00000000 2 00000000 ; Bibliotheque DriverJeuLaser (ancienne gassp72 adaptée 2021 - TR) 3 00000000 ; Accès en aux fonctions suivantes : 4 00000000 ; GPIO : 5 00000000 ; GPIOA_Set(char Broche), GPIOB_Set(char Broche), GPIOC_ Set(char Broche) 6 00000000 ; GPIOA_Clear(char Broche), GPIOB_Clear(char Broche), GP IOC_Clear(char Broche) 7 00000000 8 00000000 ; PWM : 9 00000000 ;/** 10 00000000 ; * @brief Fixe une valeur de PWM, Val, en tick horloge . La rapport cyclique effectif 11 00000000 ; * est donc : rcy = Thaut_ticks / Periode_ticks 12 00000000 ; * @note spécifique Jeu Laser, PWM liée exclusivement au TIM3, chan3 13 00000000 ; * @param Thaut_ticks : durée de l'état haut d'une imp ulsion en Ticks 14 00000000 ; * @retval None 15 00000000 ; */ 16 00000000 17 00000000 ;void PWM_Set_Value_TIM3_Ch3( unsigned short int Thaut_t icks); 18 00000000 import PWM_Set_Value_TIM3_Ch3 19 00000000 20 00000000 21 00000000 22 00000000 ;/** 23 00000000 ; * @brief Mise à 1 d'une broche GPIO 24 00000000 ; * @note Une fonction par GPIO 25 00000000 ; * @param Broche : 0 à 15 26 00000000 ; * @retval None 27 00000000 ; */ 28 00000000 29 00000000 ;void GPIOA_Set(char Broche); 30 00000000 import GPIOA_Set 31 00000000 32 00000000 ;void GPIOB_Set(char Broche); 33 00000000 import GPIOB_Set 34 00000000 35 00000000 ;void GPIOC_Set(char Broche); 36 00000000 import GPIOC_Set 37 00000000 38 00000000 39 00000000 40 00000000 ;/** 41 00000000 ; * @brief Mise à 0 d'une broche GPIO 42 00000000 ; * @note Une fonction par GPIO 43 00000000 ; * @param Broche : 0 à 15 ARM Macro Assembler Page 2 44 00000000 ; * @retval None 45 00000000 ; */ 46 00000000 47 00000000 ;void GPIOA_Clear(char Broche); 48 00000000 import GPIOA_Clear 49 00000000 50 00000000 ;void GPIOB_Clear(char Broche); 51 00000000 import GPIOB_Clear 52 00000000 53 00000000 ;void GPIOC_Clear(char Broche); 54 00000000 import GPIOC_Clear 55 00000000 56 00000000 end 10 00000000 11 00000000 12 00000000 13 00000000 ; ====================== zone de réservation de données, ====================================== 14 00000000 ;Section RAM (read only) : 15 00000000 area mesdata,data,readonly 16 00000000 17 00000000 18 00000000 ;Section RAM (read write): 19 00000000 area maram,data,readwrite 20 00000000 21 00000000 00 00 SortieSon dcw 0 ; reserve seulement 2 octet de memoire 22 00000002 00 00 Index dcw 0 23 00000004 24 00000004 ; ====================================================== ========================================= 25 00000004 26 00000004 27 00000004 28 00000004 29 00000004 ;Section ROM code (read only) : 30 00000004 area moncode,code,readonly 31 00000000 ; écrire le code ici 32 00000000 ; 33 00000000 ;if (i