75 lines
1.1 KiB
Python
Raw Normal View History

2019-10-04 07:28:32 +01:00
import struct
import wiringpi
import time
def ISR():
wiringpi.digitalWrite(16, 1)
wiringpi.wiringPiSetupGpio()
SPIchan = 0
SPIspeed = 1000000
wiringpi.wiringPiSPISetup (SPIchan, SPIspeed)
wiringpi.pinMode(16, wiringpi.OUTPUT)
wiringpi.digitalWrite(16, 0)
wiringpi.pinMode(19, wiringpi.INPUT)
wiringpi.wiringPiISR(19, wiringpi.INT_EDGE_FALLING, ISR)
clr_mdr0 = 0b00001000
clr_mdr1 = 0b00010000
clr_cntr = 0b00100000
clr_str = 0b00110000
rd_cntr = 0x60
rd_otr = 0x68
rd_str = 0x70
rd_mdr0 = 0x48
rd_mdr1 = 0x50
load_cntr2otr = 0b11100000
def write(c):
buf = bytes([c])
retlen, retdata = wiringpi.wiringPiSPIDataRW(SPIchan, buf)
def read5(c):
buf = bytes([c,0,0,0,0])
retlen, retdata = wiringpi.wiringPiSPIDataRW(SPIchan, buf)
v = struct.unpack('>I', retdata[1:])[0]
return v
def read2(c):
buf = bytes([c,0])
retlen, retdata = wiringpi.wiringPiSPIDataRW(SPIchan, buf)
v = struct.unpack('>B', retdata[1:])[0]
return v
#write(clr_mdr0)
#write(clr_mdr1)
#write(clr_cntr)
write(clr_cntr)
write(clr_str)
while True:
x = read2(rd_str)
y = read5(rd_cntr)
print("{0} {0:#04x} {0:#010b}".format(x))
print(y)
print
time.sleep(1.0)