[SOLVED] How do I read a GPIO pin in assembler? - Raspberry Pi Forums
i doing baking pi tutorial, , have figured out how write gpio pin.
how read gpio pin?
how read gpio pin?
based on bcm2835's peripheral documentation, you'll want read gplevn starting @ 0x7e200034. gplev0 give pins 0-31.
read pin 16 (the 'ok' led), load address 0x20200034 (physical address), load 32 bit value stored there register, bitshift + , pin's value out of cluster. example (not tested):
read pin 16 (the 'ok' led), load address 0x20200034 (physical address), load 32 bit value stored there register, bitshift + , pin's value out of cluster. example (not tested):
code: select all
main: mov r0, #16 bl read_pin bl print_val ; pin value (print it?). value: 1 if set high, 0 if set low. read_pin: ldr r1,=0x20200000 ldr r2, [r1, #0x34] lsr r2, r2, r0 ; assuming r0 set pin number read , r0, r2, #1 ; clear values except least significant bit (our pin value). bx lr
raspberrypi
Comments
Post a Comment