반응형
char a = Serial.read()
switch(a)
{
case 'x':
Function1();
break;
case 'y':
Function2();
break;
default:
Serial.println("값을 입력하세요.");
break;
}
위의 코드가 일반적인 문자를 입력받는 아두이노 코드 이다.
보통 초보들이 많이 하는 실수중에 하나가
int a = Serial.read();
double a = Serial.read();
물론 컴파일가 경고 정도는 출력해 주겠지만 명백히 잘못된 문장이다.
그러나 초보들은 인지 하지 못한다.
바로 C언어의 특징인 형변환 때문이다. char가 정수형이나 실수형으로 바로 변환되기 때문에
명백한 오류이지만 인식하지 못한다.
코드에 오류가 있다고 해도 받드시 문제를 발생시키는것은 아니다.
보통 자주하는 이야기다.
아두이노에서 잘되던 코드인데 다른데 적용하니 안된다. ?
본인들이 코드를 잘못 작성했다고해서 반드시 그때 오류를 출력하는것은 아니다.
잘되던 코드인데 다른데 적용하니 안된다.
이 말은 원래 오류를 가지고 있던 코드인데 오류가 발생하지 않다가 지금 발생하는것과 같다.
그래도 지금이라도 발생하면 고마운거다.
본인의 경험중에 20년동안 오류를 발생하지 않다가 갑자기 오류가 발생하던 코드를 본적도 있다.
다시 생각하면 과거의 내가 잘못 작성한 코드이다.
물론 과거의 나에게 하루종일 욕했다.
'아두이노' 카테고리의 다른 글
아두이노 문자와 문자열-#4 (0) | 2020.06.20 |
---|---|
아두이노 문자와 문자열-#3 (0) | 2020.06.20 |
아두이노 문자와 문자열-#1 (0) | 2020.06.20 |
아두이노 이더넷 클라이언트의 시작-#6 (0) | 2020.06.10 |
아두이노 이더넷 클라이언트의 시작-#5 (0) | 2020.06.07 |
댓글