/* Sample program to display 2014 on seven-segment display of Wytec EduBase board * The four-digit seven-segment display is connected to two 8-bit shift registers * on SPI in series. The shift register closer to the MCU is used to select active * digit. The shift register away from the MCU is used to select the segments of * the display. * The seven-segment display has common cathode. The segment select is high active * and the digit select is low active. */ #include // use PC7 as the slave select for seven segment display /* Tiva TM4C123 */ //const int slaveSelectPin = PC_7; const int slaveSelect = 34; void setup() { // set the slaveSelectPin as an output: pinMode (slaveSelect, OUTPUT); // initialize SPI: SPI.begin(); } void loop() { sevenSegWrite(0x5B, ~(1 << 3)); // write 2 to digit 3 delay(4); sevenSegWrite(0x3F, ~(1 << 2)); // write 0 to digit 2 delay(4); sevenSegWrite(0x06, ~(1 << 1)); // write 1 to digit 1 delay(4); sevenSegWrite(0x66, ~(1 << 0)); // write 4 to digit 0 delay(4); } // write digit pattern and digit select to the shift registers void sevenSegWrite(int pattern, int digit) { // assert SS low to the shift register of seven-segment LED digitalWrite(slaveSelect, LOW); // send the digit pattern and digit select via SPI SPI.transfer(pattern); SPI.transfer(digit); // deassert SS digitalWrite(slaveSelect, HIGH); }