viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1316068e1d8ca0e7b3040bf96ba7bf3c35945be9dbc1ecb21644049ad633c006dea18fc3a14fc14abef2a62377c

학교 수업하면서 받아 적은건데 잘못 적었는지 계속 오류가 납니다 어딜 고쳐야 할까요?


제가 하려는 것은 버튼 누르면 세그먼트 숫자가 1씩 커지는 것 입니다


#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]);

}