initial
This commit is contained in:
74
snippets/spi.py
Normal file
74
snippets/spi.py
Normal file
@ -0,0 +1,74 @@
|
||||
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)
|
||||
|
BIN
snippets/test1/test1
Executable file
BIN
snippets/test1/test1
Executable file
Binary file not shown.
17
snippets/test1/test1.c
Normal file
17
snippets/test1/test1.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <wiringPi.h>
|
||||
|
||||
void isr() {
|
||||
static int t = 0;
|
||||
digitalWrite(16, t);
|
||||
t = ! t;
|
||||
}
|
||||
|
||||
|
||||
int main (void) {
|
||||
wiringPiSetupGpio() ;
|
||||
pinMode(16, OUTPUT);
|
||||
pinMode(19, INPUT);
|
||||
wiringPiISR(19, INT_EDGE_FALLING, isr);
|
||||
|
||||
while(1);
|
||||
}
|
Reference in New Issue
Block a user