43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
#include <Arduino.h>
|
|
#include "7Segment.h"
|
|
#include "IC74HC595.h"
|
|
#include "error.h"
|
|
|
|
int init7Segment() {
|
|
pinMode(PIN_7SEGMENT_DIGIT1, OUTPUT);
|
|
pinMode(PIN_7SEGMENT_DIGIT2, OUTPUT);
|
|
pinMode(PIN_7SEGMENT_DIGIT3, OUTPUT);
|
|
pinMode(PIN_7SEGMENT_DIGIT4, OUTPUT);
|
|
return ERRNO_SUCCESS;
|
|
}
|
|
|
|
void test7Segment()
|
|
{
|
|
uint8_t segments[] = {
|
|
PIN_7SEGMENT_DIGIT1,
|
|
PIN_7SEGMENT_DIGIT2,
|
|
PIN_7SEGMENT_DIGIT3,
|
|
PIN_7SEGMENT_DIGIT4
|
|
};
|
|
for ( int j = 0; j < 4 ; j++ ) {
|
|
select7SegDisplay(segments[j]);
|
|
for ( int i = 0 ; i < 8; i++ ) {
|
|
if ( i > 0 ) {
|
|
writeIC74HC595Char(&scoreboard, ((uint8_t) ~(SEG_DP | (1 << i))), MSBFIRST);
|
|
} else {
|
|
writeIC74HC595Char(&scoreboard, ((uint8_t) ~(SEG_DP | 1)), MSBFIRST);
|
|
}
|
|
delay(1000);
|
|
}
|
|
}
|
|
}
|
|
int select7SegDisplay(uint8_t pin)
|
|
{
|
|
digitalWrite(PIN_7SEGMENT_DIGIT1, LOW);
|
|
digitalWrite(PIN_7SEGMENT_DIGIT2, LOW);
|
|
digitalWrite(PIN_7SEGMENT_DIGIT3, LOW);
|
|
digitalWrite(PIN_7SEGMENT_DIGIT4, LOW);
|
|
digitalWrite(pin, HIGH);
|
|
return ERRNO_SUCCESS;
|
|
}
|