본문 바로가기
앱스킷(APPSKIT) 강좌

[코딩노트_스케치] 스케치 동작원리

by 오마이엔지니어 2018. 11. 29.
반응형

안녕하세요.

스케치란 아두이노를 구동하는 소스를 작성하는 단위 프로그램입니다. 

 

본 포스팅은 아두이노 스케치가 어떻게 구동되는지에 대한 간단한 내용입니다.

 

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() 함수는 반복적으로 동작합니다.

 

 

이상으로 아두이노의 스케치 호출 동작에 대해 살펴 보았습니다.

 

만일 잘못되거나 부족한 정보는 추후  업데이트 하겠습니다.

 

감사합니다.

반응형

댓글