initial commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
; ------------------------------------------------------------------
|
||||
; -- _____ ______ _____ -
|
||||
; -- |_ _| | ____|/ ____| -
|
||||
; -- | | _ __ | |__ | (___ Institute of Embedded Systems -
|
||||
; -- | | | '_ \| __| \___ \ Zurich University of -
|
||||
; -- _| |_| | | | |____ ____) | Applied Sciences -
|
||||
; -- |_____|_| |_|______|_____/ 8401 Winterthur, Switzerland -
|
||||
; ------------------------------------------------------------------
|
||||
; --
|
||||
; -- table.s
|
||||
; --
|
||||
; -- CT1 P04 Ein- und Ausgabe von Tabellenwerten
|
||||
; --
|
||||
; -- $Id: table.s 800 2014-10-06 13:19:25Z ruan $
|
||||
; ------------------------------------------------------------------
|
||||
;Directives
|
||||
PRESERVE8
|
||||
THUMB
|
||||
; ------------------------------------------------------------------
|
||||
; -- Symbolic Literals
|
||||
; ------------------------------------------------------------------
|
||||
ADDR_DIP_SWITCH_7_0 EQU 0x60000200
|
||||
ADDR_DIP_SWITCH_15_8 EQU 0x60000201
|
||||
ADDR_DIP_SWITCH_31_24 EQU 0x60000203
|
||||
ADDR_LED_7_0 EQU 0x60000100
|
||||
ADDR_LED_15_8 EQU 0x60000101
|
||||
ADDR_LED_23_16 EQU 0x60000102
|
||||
ADDR_LED_31_24 EQU 0x60000103
|
||||
ADDR_BUTTONS EQU 0x60000210
|
||||
|
||||
BITMASK_KEY_T0 EQU 0x01
|
||||
BITMASK_LOWER_NIBBLE EQU 0x0F
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
; -- Variables
|
||||
; ------------------------------------------------------------------
|
||||
AREA MyAsmVar, DATA, READWRITE
|
||||
; STUDENTS: To be programmed
|
||||
|
||||
|
||||
|
||||
|
||||
; END: To be programmed
|
||||
ALIGN
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
; -- myCode
|
||||
; ------------------------------------------------------------------
|
||||
AREA myCode, CODE, READONLY
|
||||
|
||||
main PROC
|
||||
EXPORT main
|
||||
|
||||
readInput
|
||||
BL waitForKey ; wait for key to be pressed and released
|
||||
; STUDENTS: To be programmed
|
||||
|
||||
|
||||
|
||||
|
||||
; END: To be programmed
|
||||
B readInput
|
||||
ALIGN
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
; Subroutines
|
||||
; ------------------------------------------------------------------
|
||||
|
||||
; wait for key to be pressed and released
|
||||
waitForKey
|
||||
PUSH {R0, R1, R2}
|
||||
LDR R1, =ADDR_BUTTONS ; laod base address of keys
|
||||
LDR R2, =BITMASK_KEY_T0 ; load key mask T0
|
||||
|
||||
waitForPress
|
||||
LDRB R0, [R1] ; load key values
|
||||
TST R0, R2 ; check, if key T0 is pressed
|
||||
BEQ waitForPress
|
||||
|
||||
waitForRelease
|
||||
LDRB R0, [R1] ; load key values
|
||||
TST R0, R2 ; check, if key T0 is released
|
||||
BNE waitForRelease
|
||||
|
||||
POP {R0, R1, R2}
|
||||
BX LR
|
||||
ALIGN
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
; End of code
|
||||
; ------------------------------------------------------------------
|
||||
ENDP
|
||||
END
|
||||
Reference in New Issue
Block a user