PRESERVE8 THUMB include DriverJeuLaser.inc export timer_callback ; ====================== zone de réservation de données, ====================================== ;Section RAM (read only) : area mesdata,data,readonly ;Section RAM (read write): area maram,data,readwrite ;char FlagCligno; FlagCligno dcb 0 ; reserve seulement un octet de memoire ; =============================================================================================== ;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); ; } ; ;} timer_callback proc ;void timer_callback(void) ;{ push {lr} ; if (FlagCligno==1) ldr r2,=FlagCligno EXPORT FlagCligno ldrb r1, [r2] mov r0, #1 cmp r1, #1 bne Sinon ; { ; FlagCligno=0; mov r1, #0 ; GPIOB_Set(1); str r1, [r2] bl GPIOB_Set ; } b fin ; else Sinon ; { ; FlagCligno=1; mov r1, #1 str r1, [r2] ; GPIOB_Clear(1); bl GPIOB_Clear ; } ; fin ;} pop {lr} ; pop {pc} remplace les bx lr ; deux lignes car on met l' ; ancienne valeur de lr dans pc endp END