121 lines
3.2 KiB
C++
121 lines
3.2 KiB
C++
#include "segman.hh"
|
|
|
|
#include <Arduino.h>
|
|
|
|
void writeDigit(int digit, unsigned char value) {
|
|
digitalWrite(PIN_D1, HIGH);
|
|
digitalWrite(PIN_D2, HIGH);
|
|
digitalWrite(PIN_D3, HIGH);
|
|
digitalWrite(PIN_D4, HIGH);
|
|
|
|
switch (value) {
|
|
case 0:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, HIGH);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, LOW);
|
|
break;
|
|
case 1:
|
|
digitalWrite(PIN_SA, LOW);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, LOW);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, LOW);
|
|
digitalWrite(PIN_SG, LOW);
|
|
break;
|
|
case 2:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, LOW);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, HIGH);
|
|
digitalWrite(PIN_SF, LOW);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 3:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, LOW);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 4:
|
|
digitalWrite(PIN_SA, LOW);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, LOW);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 5:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, LOW);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 6:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, LOW);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, HIGH);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 7:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, LOW);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, LOW);
|
|
digitalWrite(PIN_SG, LOW);
|
|
break;
|
|
case 8:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, HIGH);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
case 9:
|
|
digitalWrite(PIN_SA, HIGH);
|
|
digitalWrite(PIN_SB, HIGH);
|
|
digitalWrite(PIN_SC, HIGH);
|
|
digitalWrite(PIN_SD, HIGH);
|
|
digitalWrite(PIN_SE, LOW);
|
|
digitalWrite(PIN_SF, HIGH);
|
|
digitalWrite(PIN_SG, HIGH);
|
|
break;
|
|
}
|
|
|
|
switch (digit) {
|
|
case 1:
|
|
digitalWrite(PIN_D1, LOW);
|
|
break;
|
|
case 2:
|
|
digitalWrite(PIN_D2, LOW);
|
|
break;
|
|
case 3:
|
|
digitalWrite(PIN_D3, LOW);
|
|
break;
|
|
case 4:
|
|
digitalWrite(PIN_D4, LOW);
|
|
break;
|
|
}
|
|
|
|
delay(6);
|
|
}
|