MPU 종류 / 용량 크기
ATmega128 : 4KiB
ATmega328 : 1KiB
ATmega2560 : 4KiB
ATmega16u2 : 0.5KiB
ATmega32u4 : 1KiB
ATmega4809/4808 : 0.25KiB(256Byte)
코드
#include <EEPROM.h>
struct S_test {
unsigned int num; // 1 Byte
char name[24]; // 24 Byte (한글은 1글자 = 3 Byte이다)
};
void setup() {
Serial.begin(9600);
// 구조체의 크기를 측정
Serial.println(sizeof(S_test));
// 구조체 선언 후 값 할당
S_test t1 = {1, "테스트글자입니다"};
S_test t2 = {2, "코모클라우드"};
S_test t3 = {3, "환영합니다!"};
// EEPROM에 구조체 저장 (측정한 구조체의 Byte 크기에 맞게 값을 설정한다)
EEPROM.put(0, t1);
EEPROM.put(26, t2);
EEPROM.put(52, t3);
// 저장한 데이터를 받아올 구조체 선언
struct S_test a, b, c;
// EEPROM에서 데이터 읽어온 후 구조체에 저장
EEPROM.get(0, a);
EEPROM.get(26, b);
EEPROM.get(52, c);
// 구조체 출력
Serial.println((String) "00:" + a.num + ", " + a.name);
Serial.println((String) "26:" + b.num + ", " + b.name);
Serial.println((String) "52:" + c.num + ", " + c.name);
}
void loop() {
}
* 구조체의 크기가 홀수 바이트인 경우, Padding해서 짝수 바이트로 만든다. 위의 경우도 구조체의 변수는 총 25Byte지만, Padding해서 26Byte로 만들었다.
실행 결과
'프로그래밍 > 아두이노' 카테고리의 다른 글
WeMos ESP32 WiFi&Bluetooth Battery 호환보드 (0) | 2020.07.10 |
---|---|
Arduino Nano 업로드 시 에러 해결, 부트로더 업데이트 방법 (0) | 2020.06.08 |
아두이노로 ESP-01(ESP8266-01) WiFi 모듈 펌웨어 업그레이드 (0) | 2020.05.21 |
아두이노 조이스틱 컨트롤 (0) | 2020.05.13 |
아두이노 AT-09 블루투스 모듈 통신 (0) | 2020.05.01 |