WarpPI/src/org/warp/picalculator/device/chip/ParallelToSerial.java
2016-09-02 20:32:37 +02:00

36 lines
822 B
Java

package org.warp.picalculator.device.chip;
import com.pi4j.wiringpi.Gpio;
public class ParallelToSerial {
private int SH_LD;
private int CLK_INH;
private int QH;
private int CLK;
public ParallelToSerial(int SH_LD_pin, int CLK_INH_pin, int QH_pin, int CLK_pin) {
SH_LD = SH_LD_pin;
CLK_INH = CLK_INH_pin;
QH = QH_pin;
CLK = CLK_pin;
}
public boolean[] read() {
boolean[] data = new boolean[8];
Gpio.digitalWrite(CLK_INH, Gpio.HIGH);
Gpio.digitalWrite(SH_LD, Gpio.LOW);
Gpio.delay(1);
Gpio.digitalWrite(SH_LD, Gpio.HIGH);
Gpio.digitalWrite(CLK_INH, Gpio.LOW);
for (int i = 7; i >= 0; i--) {
Gpio.digitalWrite(CLK, Gpio.HIGH);
Gpio.digitalWrite(CLK, Gpio.LOW);
data[i] = Gpio.digitalRead(QH)==Gpio.HIGH?true:false;
}
return data;
}
}