solved Task 3a
This commit is contained in:
@@ -77,10 +77,82 @@ main PROC
|
||||
|
||||
main_loop
|
||||
; STUDENTS: To be programmed
|
||||
|
||||
; Read ADC Value to R0
|
||||
BL adc_get_value
|
||||
|
||||
; check T0
|
||||
LDR R1, =ADDR_BUTTONS
|
||||
LDRB R1, [R1]
|
||||
LDR R2, =0x01
|
||||
TST R1, R2
|
||||
BNE case_green ; If T0 is pressed: goto case_green, else: continue
|
||||
|
||||
; Else (T0 is not pressed):
|
||||
|
||||
; Read 8-bit value from DIP-Switch 7-0 to R1
|
||||
LDR R1, =ADDR_DIP_SWITCH_7_0
|
||||
LDRB R1, [R1]
|
||||
|
||||
; Calc diff: DIP-Switch-7-0 - ADC-Value
|
||||
SUBS R2, R1, R0
|
||||
BLT case_red ; IF diff >= 0: continue case blue, else: goto case red
|
||||
|
||||
|
||||
case_blue
|
||||
; Make LCD Display Blue
|
||||
LDR R3, =ADDR_LCD_COLOUR
|
||||
LDR R4, =DISPLAY_COLOUR_BLUE
|
||||
LDR R5, =0xffff
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_RED
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_GREEN
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
|
||||
; Show Diff on 7-Segment
|
||||
LDR R3, =ADDR_7_SEG_BIN_DS3_0
|
||||
STRB R2, [R3]
|
||||
|
||||
B end_cases
|
||||
case_red
|
||||
; Make LCD Display Red
|
||||
LDR R3, =ADDR_LCD_COLOUR
|
||||
LDR R4, =DISPLAY_COLOUR_RED
|
||||
LDR R5, =0xffff
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_BLUE
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_GREEN
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
|
||||
; Show Diff on 7-Segment
|
||||
LDR R3, =ADDR_7_SEG_BIN_DS3_0
|
||||
STRB R2, [R3]
|
||||
|
||||
B end_cases
|
||||
case_green
|
||||
; Make LCD Display Green
|
||||
LDR R3, =ADDR_LCD_COLOUR
|
||||
LDR R4, =DISPLAY_COLOUR_GREEN
|
||||
LDR R5, =0xffff
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_RED
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
LDR R4, =DISPLAY_COLOUR_BLUE
|
||||
LDR R5, =0x0000
|
||||
STRH R5, [R3, R4]
|
||||
|
||||
; Show ADC Value on 7-Semgment
|
||||
LDR R3, =ADDR_7_SEG_BIN_DS3_0
|
||||
STRB R0, [R3]
|
||||
|
||||
end_cases
|
||||
; END: To be programmed
|
||||
B main_loop
|
||||
|
||||
|
||||
Reference in New Issue
Block a user