Code: Select all
def shiftOut(byte):
latch.off()
for i in range(8):
value = byte & 1<<i #Is bit set or cleared?
data.value(value)
clock.on()
clock.off()
Code: Select all
@micropython.viper
def shiftOut(data: int):
GPIO_OUT = ptr32(0x60000300) # GPIO base register
GPIO_OUT[2] = 0x10 # clear pin 4
for i in range(8):
value = data & 1<<i #Is bit set or cleared?
reg = 2-(value >>i) #Selecting set or clear register - clear reg is 2, set reg is 1
GPIO_OUT[reg] = 0x8000 #set or clear data bit
GPIO_OUT[1] = 0x20 # set bit 5
GPIO_OUT[2] = 0x20 # clear bit 5