[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?

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):

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

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial