?? handle_ostimer0.s
字號(hào):
IMPORT osTimer_OSSR
IMPORT osTimer_OSMR0
IMPORT osTimer_OSCR
IMPORT osScanInterval
IMPORT ledShareVariant
IMPORT ledShareInterval
IMPORT ledStatusBuffer
IMPORT interruptVectorListBase
IMPORT led_statusSet
IMPORT button_statusFetch
IMPORT handle_osTimer0New
EXPORT handle_osTimer0
AREA handle_osTimer0 ,CODE ,READONLY
stmfd r13!,{r14}
ldr r11,=ledShareVariant
ldr r4,[r11]
cmp r4,#0x0 ;if invert led status
beq invertLedStatus
sub r4,r4,#0x1
str r4,[r11]
b pollingButtonStatus
;////////////////
invertLedStatus
ldr r4,=ledShareInterval
str r4,[r11] ;init ledShareVariant to re-start counting
ldr r11,=ledStatusBuffer
ldr r0,[r11]
mvn r0,r0
str r0,[r11]
mov r14,pc
;$$$$$
;input:r0--value
;
ldr pc,=led_statusSet ;invert led status
;
;output:null
;$$$$$
;////////////////
pollingButtonStatus
mov r14,pc
;$$$$$
;input:null
;
ldr pc,=button_statusFetch
;
;output:r0--0 means no input, --!0 input value
;$$$$$
;
cmp r0,#0x0
beq handleOtEnd ;if no button is pressed,end
ldr r4,=handle_osTimer0New
ldr r11,=interruptVectorListBase
mov r5,#26
mov r5,r5,LSL #0x2
str r4,[r11,r5] ;if button pressed,overload handle_osTimer0
handleOtEnd
ldr r10,=osTimer_OSMR0
ldr r4,=osScanInterval
ldr r11,=osTimer_OSCR
ldr r5,[r11]
add r4,r4,r5
str r4,[r10]
ldr r11,=osTimer_OSSR
ldr r4,[r11]
and r4,r4,#0x1
str r4,[r11] ;clear OSTimer0 status.
ldmfd r13!,{pc}
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -