byte 형태의 변수를 값을 합치는 게 아닌 위치를 합쳐서 계산해야 하는 경우가 있습니다.
그냥 더한 경우 아래와 같이 잘못된 연산으로 원하지 않는 값이 나옵니다.
13 92 -> 13+92(16진수) ->a5(16진수) -> 5010(10진수) 로 표시하게 됩니다. (X)
byte data[2] ={0x13,0x92}; //13 92
Serial.println(data[0],HEX);
Serial.println(data[1],HEX);
int result = data[0]+data[1];
Serial.println("result: "+String(result));
다음과 같이 사용합니다.
13 92 -> 1392(16진수) -> 5010(10진수) 로 표시하게 됩니다.
byte data[2] ={0x13,0x92}; //13 92
Serial.println(data[0],HEX);
Serial.println(data[1],HEX);
int result = word(data[0],data[1]);
Serial.println("result: "+String(result));
감사합니다.
'프로그래밍 > 아두이노[Arduino]&라즈베리파이[Raspberry Pi]' 카테고리의 다른 글
아두이노 메가 전체 핀맵 핀정보 정리[Pin-table] (0) | 2023.01.05 |
---|---|
DS3231 모듈 - 시계모듈 RTC[Real Time Clock] 사용법 정리 (0) | 2023.01.02 |
[Arduino]아두이노 char 배열 여러개 사용(포인터) (0) | 2022.12.30 |
[ArduinoJson]아두이노에서 Json 사용법 정리 (0) | 2022.12.30 |
LTE 외장형 모뎀 아두이노 통신[LTE Cat.M1 WD-N522S] (0) | 2022.11.11 |