아두이노 7세그먼트 4자리 스위치 누르면 숫자 하나씩 올라가는건데 

내가 잘못 받아 적었는지 계속 오류 뜨는데 어딜 고쳐야할까...?


#define SEG_A  10 

#define SEG_B  1 

#define SEG_C  A3  

#define SEG_D  A1  

#define SEG_E  A0 

#define SEG_F  9  

#define SEG_G  A4  

#define SEG_H  A2  

#define COM1  11  

#define COM2  3 

#define COM3  2  

#define COM4 A5  

#define button 13

int cnt=0;

static int table[8] = 

{  {0, 0,  1,  1,  1,  1,  1,  1},     

  {0, 0,  0,  0,  0,  1,  1,  0},    

  {0, 1,  0,  1,  1,  0,  1,  1},     

  {0, 1,  0,  0,  1,  1,  1,  1},     

  {0, 1,  1,  0,  0,  1,  1,  0},     

  {0, 1,  1,  0,  1,  1,  0,  1},     

  {0, 1,  1,  1,  1,  1,  0,  1},     

  {0, 0,  0,  0,  0,  1,  1,  1},     

  {0, 1,  1,  1,  1,  1,  1,  1},     

  {0, 1,  1,  0,  1,  1,  1,  1}      

};


void setup() {

pinMode(SEG_A,OUTPUT);    

  pinMode(SEG_B,OUTPUT);

  pinMode(SEG_C,OUTPUT);

  pinMode(SEG_D,OUTPUT);

  pinMode(SEG_E,OUTPUT);

  pinMode(SEG_F,OUTPUT);

  pinMode(SEG_G,OUTPUT);

  pinMode(SEG_H,OUTPUT);

  pinMode(COM1,OUTPUT);

  pinMode(COM2,OUTPUT);

  pinMode(COM3,OUTPUT);

  pinMode(COM4,OUTPUT);

}


void digits_4_seven_segment(int num){ 

   for(int i=4;i>0;--i){

       int rem=num%10;

       Display(i,rem);

       num = num/10; 

    }

 }    

void loop() {

   if(digitalRead(button) == HIGH) 

      cnt = cnt+1; 

      if(cnt == 10000)  cnt = 0;

      delay(150);

    } 

  digits_4_seven_segment(cnt);

 } 

void Display(unsigned char com,unsigned char num){

  digitalWrite(SEG_A,LOW);      

  digitalWrite(SEG_B,LOW);

  digitalWrite(SEG_C,LOW);

  digitalWrite(SEG_D,LOW);

  digitalWrite(SEG_E,LOW);

  digitalWrite(SEG_F,LOW);

  digitalWrite(SEG_G,LOW);

  digitalWrite(SEG_H,LOW);


  switch(com) {         

case 1:

      digitalWrite(COM1,LOW);   

      digitalWrite(COM2,HIGH);

      digitalWrite(COM3,HIGH);

      digitalWrite(COM4,HIGH);

      break;

    case 2:

      digitalWrite(COM1,HIGH);

      digitalWrite(COM2,LOW);  

      digitalWrite(COM3,HIGH);

      digitalWrite(COM4,HIGH);

      break;

      case 3:

      digitalWrite(COM1,HIGH);

      digitalWrite(COM2,HIGH);

      digitalWrite(COM3,LOW);   //3번째 숫자 선택

      digitalWrite(COM4,HIGH);

      break;

    case 4:

      digitalWrite(COM1,HIGH);

      digitalWrite(COM2,HIGH);

      digitalWrite(COM3,HIGH);

      digitalWrite(COM4,LOW);   

      break;

    default:break;

  }

  digitalWrite(SEG_A,table[num][7]);

  digitalWrite(SEG_B,table[num][6]);

  digitalWrite(SEG_C,table[num][5]);

  digitalWrite(SEG_D,table[num][4]);

  digitalWrite(SEG_E,table[num][3]);

  digitalWrite(SEG_F,table[num][2]);

  digitalWrite(SEG_G,table[num][1]);

  digitalWrite(SEG_H,table[num][0]);

}