코드의 구성

아두이노 코드의 구성

아두이노 스케치에서 새 파일을 생성하면 다음과 같은 코드가 나타난다.

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

총 두 개의 { } 가 존재하며, void부터 { } 까지를 통틀어 함수라고 부른다. 따라서 아두이노에는 기본적으로 두 개의 함수가 존재한다고 볼 수있다.

각각의 함수들은 내부에 코드를 가질 수 있고 가진 코드들은 함수가 실행되면 작성 순서대로 실행된다. 필요하다면 추가적으로 함수를 만들 수도 있지만 이 문서에서는 살펴보지 않는다. 기본적으로 주어진 함수들의 역할은 다음과 같다.

  • void setup(){ } : setup 이라는 이름을 가진 함수로 최초 1회만 실행되는 코드를 보관 및 실행한다.

  • void loop(){ } : loop라는 이름을 가진 함수로 지속적으로 실행되는 코드를 보관 및 실행한다.

심화

setup 함수와 loop 함수가 실행횟수, 순서의 차이가 발생하는지 궁금하다면 원리를 좀 더 살펴볼 수 있다.(생략해도 무방하다) 아두이노는 C/C++구성되어 있으며, 설치 폴더에 가면 main.cpp 라는 파일이 있는데 이 파일이 실제 작성한 아두이노 코드를 실행하는 역할을 수행한다.

#include <Arduino.h>

// Declared weak in Arduino.h to allow user redefinitions.
int atexit(void (* /*func*/ )()) { return 0; }

// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
void initVariant() { }

void setupUSB() __attribute__((weak));
void setupUSB() { }

int main(void)
{
	init();

	initVariant();

#if defined(USBCON)
	USBDevice.attach();
#endif
	
	setup();
    
	for (;;) {
		loop();
		if (serialEventRun) serialEventRun();
	}
        
	return 0;
}

위의 코드를 보면 setup 함수와 loop 함수의 실행횟수가 차이나는 이유에 대해서 알 수 있다.

Last updated