#include <TimerOne.h>
class seven_leds
{
public:
seven_leds(int8_t pin1 = A0, int8_t pin2 = A1, int8_t pin3 = 4, int8_t pin4 = 5, int8_t pin5 = 6, int8_t pin6 = 7, int8_t pin7 = 8, int8_t pin8 = 9, int8_t pincom = 10)
{ pins[0] = pin1;
pins[1] = pin2;
pins[2] = pin3;
pins[3] = pin4;
pins[4] = pin5;
pins[5] = pin6;
pins[6] = pin7;
pins[7] = pin8;
pins[8] = pincom;
}
int8_t pins[9];
int8_t data[10][8] = {
{1, 1, 1, 1, 1, 1, 0, 0}, //0
{0, 1, 1, 0, 0, 0, 0, 0}, //1
{1, 1, 0, 1, 1, 0, 1, 0}, //2
{1, 1, 1, 1, 0, 0, 1, 0}, //3
{0, 1, 1, 0, 0, 1, 1, 0},
{1, 0, 1, 1, 0, 1, 1, 0},
{1, 0, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 0, 0, 1, 0, 0},
{1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 0, 1, 1, 0},
}; //bit 撠??雿 L, ABCDEFGP
void init()
{
for (int i = 0; i <= 8; i++)
pinMode(pins[i], OUTPUT);
turn_off();
output(0);
}
void set_datapins(int8_t pin1, int8_t pin2, int8_t pin3, int8_t pin4, int8_t pin5, int8_t pin6, int8_t pin7, int8_t pin8)
{
pins[0] = pin1;
pins[1] = pin2;
pins[2] = pin3;
pins[3] = pin4;
pins[4] = pin5;
pins[5] = pin6;
pins[6] = pin7;
pins[7] = pin8;
}
void set_compin(int8_t pincom = 10)
{
pins[8] = pincom;
}
void output(int8_t value)
{
for (int i = 0; i <= 7; i++)
digitalWrite(pins[i], data[value][i]);
}
void turn_on()
{
digitalWrite(pins[8], LOW);
}
void turn_off()
{
digitalWrite(pins[8], HIGH);
}
};
////////
seven_leds led[4];
int count = 0;
int val=0, val2=0, data=0;
int digit = 0;
const byte interruptPin = 2;
bool state_up = false;
bool push, a;
void setup() {
// put your setup code here, to run once:
led[0].set_compin(13);
led[1].set_compin(12);
led[2].set_compin(11);
led[3].set_compin(10);
for (int i = 0; i < 4; i++)
{
led[i].init();
}
Timer1.initialize(5000);
Timer1.attachInterrupt(display);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin),ADD,RISING);
Serial.begin(9600);
Serial.println("go");
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available())
data = Serial.parseInt();
if (val!=data)
val=data;
push = digitalRead(interruptPin)
}
/*
void display()
{
if (digit == 0)
{
led[3].turn_off();
val2 = val;
}
else
{
led[digit - 1].turn_off();
val2/=10;
}
led[digit].output(val2 % 10);
led[digit].turn_on();
digit++;
if (digit > 3)
digit = 0;
}
*/
void ADD()
{
}