Untitled
unknown
plain_text
2 years ago
1.2 kB
7
Indexable
@ Assembler program to flash the built-in LED on the Raspberry Pi Pico W
@ The flash cycle is one second long (500ms on, 500ms off)
.EQU LED_BUILTIN, 0 @ GPIO number for built-in LED on Pico W
.EQU GPIO_OUT, 1 @ GPIO output mode
.EQU sleep_time, 500 @ Sleep time in milliseconds (500ms)
.thumb_func @ Necessary because SDK uses BLX
.global main @ Provide program starting address to linker
main:
MOV R0, #LED_BUILTIN @ Load LED pin number
BL gpio_init @ Initialize GPIO pin
MOV R0, #LED_BUILTIN @ Load LED pin number
MOV R1, #GPIO_OUT @ Set pin as output
BL link_gpio_set_dir @ Set GPIO direction
loop:
MOV R0, #LED_BUILTIN @ Load LED pin number
MOV R1, #1 @ Turn LED on
BL link_gpio_put @ Apply GPIO output
LDR R0, =sleep_time @ Load sleep time
BL sleep_ms @ Sleep (LED on)
MOV R0, #LED_BUILTIN @ Load LED pin number
MOV R1, #0 @ Turn LED off
BL link_gpio_put @ Apply GPIO output
LDR R0, =sleep_time @ Load sleep time
BL sleep_ms @ Sleep (LED off)
B loop @ Repeat indefinitely
Editor is loading...
Leave a Comment