#include <LedControl.h>
#include <MsTimer2.h>
#define u8 unsigned char
#define u16 unsigned int
u8 led_pin=4;
int pinInterrupt = 2;
u16 count = 0,t=100,jud;
int DIN = 0;
int CS = 1;
int CLK = 3;
LedControl lc=LedControl(DIN,CLK,CS,1);
byte num_0[8]={B00000000,B00000000,B01111100,B01000100,B01111100,B00000000,B00000000,B00000000},
num_1[8]={B00000000,B00000000,B00000000,B01111110,B01111110,B00000000,B00000000,B00000000},
num_2[8]={B00000000,B00000000,B01110100,B01010100,B01010100,B01011100,B00000000,B00000000},
num_3[8]={B00000000,B00000000,B01010100,B01010100,B01010100,B01111100,B00000000,B00000000},
num_4[8]={B00000000,B00000000,B00011100,B00010000,B00010000,B01111100,B00000000,B00000000},
num_5[8]={B00000000,B00000000,B01011100,B01010100,B01010100,B00100100,B00000000,B00000000};
u8 k,flag_1=0;
void onChange()
{
delay(50);
flag_1 = ~flag_1;
}
void wait()
{
while(flag_1);
}
void setup()
{
lc.shutdown(0,false);
lc.clearDisplay(0);
for(led_pin=4;led_pin<14;led_pin++)
{
pinMode(led_pin,OUTPUT);
}
// put your setup code here, to run once:
pinMode(pinInterrupt,INPUT);
attachInterrupt(digitalPinToInterrupt(pinInterrupt),onChange,CHANGE);
MsTimer2::set(100,onTimer);
MsTimer2::start();
lc.shutdown(0,false);
lc.setIntensity(0,3);
lc.clearDisplay(0);
}
u8 a;
void loop()
{
for(led_pin=4;led_pin<14;led_pin++)
{
wait();
digitalWrite(led_pin,LOW);
delay(analogRead(A0));
}
if(led_pin==14)
led_pin=4;
for(led_pin=4;led_pin<14;led_pin++)
{
wait();
digitalWrite(led_pin,HIGH);
delay(analogRead(A0));
}
}
void onTimer()
{
count=analogRead(A0);
count=count/200;
switch(count)
{
case 5:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_5[k]); break;
case 4:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_4[k]); break;
case 3:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_3[k]); break;
case 2:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_2[k]); break;
case 1:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_1[k]); break;
case 0:
lc.clearDisplay(0);
for (k=0;k<8;k++)
lc.setRow(0,k,num_0[k]); break;
}}