#!/usr/bin/python
# Read the analog sensor value via MCP3002.
import mraa
import time
def reverse_bit(value):
value = ((value & 0x55) << 1) | ((value
& 0xAA) >> 1)
value = ((value & 0x33) << 2) | ((value
& 0xCC) >> 2)
value = (value << 4) | (value >> 4)
return (value & 0xff)
# initialise SPI
dev = mraa.Spi(0)
# prepare data to send
txbuf = bytearray(2)
txbuf[1] = 0x68 >> 1
txbuf[0] = 0x00
while True:
# send data through SPI
rxbuf = dev.write(txbuf)
print "rxbuf=",
print len(rxbuf),
for x in range(len(rxbuf)):
print('{:08b}'.format(rxbuf[x])),
#rxbuf[0]: X X X X X
X X X
#
B0 B1 B2 B3 B4 B5 B6 B7
#rxbuf[1]: X X X X X
X X X
#
B8 B9 ?? ?? ?? ?? ?? ??
print
rxbuf[0] = reverse_bit(rxbuf[0])
rxbuf[1] = reverse_bit(rxbuf[1])
print "rxbuf(reverse)=",
for x in range(len(rxbuf)):
print('{:08b}'.format(rxbuf[x])),
value = (rxbuf[1] << 8) + rxbuf[0]
print('{:04d}'.format(value))
time.sleep(0.5)
|