aboutsummaryrefslogtreecommitdiff
path: root/software/shift.ino
blob: d8062af32094a690b1f0820a89f810dd09068705 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "shift.h"
#include "consts.h"
#ifdef DEBUG
#include "util.h"
#endif

unsigned char shift_state[2];

void update_shift_state() {
	for(int i = 0; i < 2; i++)
		shift(shift_state[i]);

	digitalWrite(PINOUT_LCK, HIGH);
	digitalWrite(PINOUT_LCK, LOW);
}

void shift(unsigned char data) {
	for(int i = 0; i < 8; i++) {
		bool bit = (data & 1 << (7 - i)) > 0;

		digitalWrite(PINOUT_SER, bit);

		digitalWrite(PINOUT_SCK, HIGH);
		digitalWrite(PINOUT_SCK, LOW);
	}
}