PRESERVE8 THUMB ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly ;Section RAM (read write): area maram,data,readwrite FlagCligno dcb 0 EXPORT FlagCligno ; =============================================================================================== ;constantes (équivalent du #define en C) ;char FlagCligno; EXPORT timer_callback ; la fonction timer_callback est rendue publique donc utilisable par d'autres modules. ;Section ROM code (read only) : area moncode,code,readonly ; écrire le code ici ;*void timer_callback(void) ;{ ; if (FlagCligno==1) ; { ; FlagCligno=0; ; GPIOB_Set(1); ; } ; else ; { ; FlagCligno=1; ; GPIOB_Clear(1); ; } ; include DriverJeuLaser.inc timer_callback proc push {lr} ldr r1,=FlagCligno ; cmp r1,#0 ; si r1(FlagCligno) == 0, on continue. beq L0 ; cmp r1,#0 ; si r1(FlagCligno) == 0, on continue. bne L1 ; sinon break to L1 L0 mov r2, #1 str r2, [r1] mov r0, #1 ; GPIOB_Clear("1") bl GPIOB_Clear pop {pc} L1 mov r2, #0 ; copie valeur "0" dans r2 str r2, [r1] ; la valeur 32bits contenue dans r2 est copiée en RAM à l'adresse spécifiée dans r1 mov r0, #1 ; GPIOB_Set(r0 = "1") bl GPIOB_Set pop {pc} endp END