안녕하세요..

현재 ez보드를 가지고 공부하고 있는 학생입니다.

원래 전공이 이 분야가 아니다 보니.. 모르는 것이 많아서 질문을 드립니다.

다른것이 아니구요..

gpio.h 파일에 보면,,,

#define GPIO_LED_1 8 //..
..
..
#define MASK_GPIO_LED_1 (1 << GPIO_LED_1 )
..
..
이런식으로 정의 되어 있습니다

그리고 이 마스크들을 OR 연산해서..

나중에 GAFR,GPDR, GRER, GFER 등에 1의 보수화 시켜서 and 연산 시키거나 output 같은 경우는

or 연산을 시키는 것 까지는 알겠습니다.

그런데 마스크 매크로를 정의할 때,

(1 << GPIO_LED_1 ) .. 이런식으로 정의 되는데, 이게 어떤 의미를 가지는 지를 잘
모르겠습니다.

그냥 이런식으로 하는구나... 하고 넘어가면 그만이지만.. GPIO_LED_1 ---> 8 이런식으로 정의

되어 있는 상태에서 shift연산과 and 연산 등을 통해서 특정 값(??)을 만들어서 레지스터들에 1의
보수화 시킨 후 and나 or시켜서 연동시키면 그 port들을 제어가능한지 궁금합니다.

그리고 마스크로 만드는 과정과, 레지스터에 등록할때의 보수/and/or 등의 메커니즘에 대해서
궁금합니다. 단순한 전자계산기 이론만 가지고는 이해하기가 힘이 듭니다...