-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path04_IO_Utils.ino
74 lines (58 loc) · 2.26 KB
/
04_IO_Utils.ino
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/********************
* 03_IO_UTILS.INO *
*******************/
/**
* Utility functions related to IO
*
* Output functions for cab/pad lights, bass LED outputs, etc
*/
/**
* Alternates the isAlternateBassKick variable
*/
void alternateBassSel() {
isAlternateBassKick = !isAlternateBassKick;
}
/**
* Writes the two bass light pins.
* One must be the signal, the other ground
*/
void writeBass(short val) {
if (isAlternateBassKick) {
analogWrite(PIN_BASS_LIGHT_1, val);
analogWrite(PIN_BASS_LIGHT_2, 0);
} else {
analogWrite(PIN_BASS_LIGHT_2, val);
analogWrite(PIN_BASS_LIGHT_1, 0);
}
}
/**
* Writes data to the cabinet lighting shift registers, sets cabinet lighting IO pins accordingly too
*/
void writeCabLighting() {
#ifdef EXPANSION_SHIFT_REGISTERS // If we're using shift registers on the expansion port, output the data now
// Shift registers: Uncomment the shiftOut lines to customize what data to write to the shift register(s) on the expansion port
digitalWrite(PIN_LIGHTS_LAT, LOW); //Pull latch pin low, shift out data, and throw latch pin high again
//shiftOut(PIN_LIGHTS_DAT, PIN_LIGHTS_CLK, LSBFIRST, etcLEDs);
shiftOut(PIN_LIGHTS_DAT, PIN_LIGHTS_CLK, LSBFIRST, cabLEDs);
//shiftOut(PIN_LIGHTS_DAT, PIN_LIGHTS_CLK, LSBFIRST, padLEDs);
digitalWrite(PIN_LIGHTS_LAT, HIGH);
#else // No shift registers = write a few cab lights to the expansion pins instead
digitalWrite(PIN_P1_MENU, bitRead(cabLEDs, 7));
digitalWrite(PIN_P2_MENU, bitRead(cabLEDs, 6));
#endif
// Then write cab LEDs hooked up to the regular IO pins
digitalWrite(PIN_P1_UP, bitRead(padLEDs, 0));
digitalWrite(PIN_P1_DOWN, bitRead(padLEDs, 1));
digitalWrite(PIN_P1_LEFT, bitRead(padLEDs, 2));
digitalWrite(PIN_P1_RIGHT, bitRead(padLEDs, 3));
digitalWrite(PIN_P2_UP, bitRead(padLEDs, 4));
digitalWrite(PIN_P2_DOWN, bitRead(padLEDs, 5));
digitalWrite(PIN_P2_LEFT, bitRead(padLEDs, 6));
digitalWrite(PIN_P2_RIGHT, bitRead(padLEDs, 7));
digitalWrite(PIN_P1_START, bitRead(cabLEDs, 5));
digitalWrite(PIN_P2_START, bitRead(cabLEDs, 4));
digitalWrite(PIN_MARQUEE_LR, bitRead(cabLEDs, 0));
digitalWrite(PIN_MARQUEE_UR, bitRead(cabLEDs, 1));
digitalWrite(PIN_MARQUEE_LL, bitRead(cabLEDs, 2));
digitalWrite(PIN_MARQUEE_UL, bitRead(cabLEDs, 3));
}