안녕하세요.
스케치란 아두이노를 구동하는 소스를 작성하는 단위 프로그램입니다.
본 포스팅은 아두이노 스케치가 어떻게 구동되는지에 대한 간단한 내용입니다.
setup() 함수와 loop() 함수의 호출 구조를 이해하면 스케치 프로그램 작성 시 도움이 될 것 같습니다.
아두이노 IDE 환경에서 새 파일을 생성하면 다음과 같습니다.
[아두이노 스케치 빈파일 생성 화면]
스케치 프로그램을 해 보신 분이라면 위 구조에 익숙할 것 같습니다.
짧게 설명하면 void setup() 함수는 한 번만 동작하고 void loop() 함수는 반복적으로 동작합니다.
스케치를 처음 보았을 때, 당황하신 분들도 있으셨을까요?
코드 내에 반드시 있어야 하는 main() 함수가 스케치 파일에는 아무데도 보이지 않습니다.
그런데 어떻게 setup() 함수는 한 번만 동작하고 loop() 함수는 이름처럼 반복될까요?
그 이유는 다음과 같습니다.
아두이도 IDE를 PC에 설치하고 나면,
설치경로\Arduino\hardware\arduino\avr\cores\arduino 폴더 내에 main.cpp 라는 파일을 찾을 수 있습니다.
이 파일을 열어 보면 다음과 같은 코드가 있습니다.
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
[main.cpp 파일 코드 일부 발췌]
위에서 보시는 것처럼 main.cpp 파일 안에서 setup() 함수의 호출과 for 루프 안에서 loop() 함수가 반복적으로 호출되는 것을 알 수 있습니다.
그래서 스케이 내의 setup() 함수는 한 번만 동작하고, loop() 함수는 반복적으로 동작합니다.
이상으로 아두이노의 스케치 호출 동작에 대해 살펴 보았습니다.
만일 잘못되거나 부족한 정보는 추후 업데이트 하겠습니다.
감사합니다.
'앱스킷(APPSKIT) 강좌' 카테고리의 다른 글
[코딩노트_I/Os] 디지털 입출력 (0) | 2018.11.29 |
---|---|
[코딩노트_문자열] String 클래스 (0) | 2018.11.29 |
[앱스킷](TEMP-ON V1) I2C 온습도 센서 모듈 사용방법 알아보기 (0) | 2018.11.28 |
[앱스킷](LED-ON V1) I2C LED 모듈 사용방법 알아보기 (0) | 2018.11.28 |
[코딩노트_통신] Serial 라이브러리 (0) | 2018.11.28 |
댓글