기본 제공해주는 avr.h를 사용해도 되지만 필요한 레지스터만 define하여 사용할 수 있다.
최종모습은 아래와 같다.
이해하기 쉽게 순서대로 적어보겠다.
최종모습은 아래와 같다.
#define DDRF *((volatile unsigned char *)0x61)위 코드는 보다시피 스펙에 나와있는 DDRF의 주소를 Register Summary에서 직접 찾아서 적을 수 있다.
이해하기 쉽게 순서대로 적어보겠다.
- 사용할 레지스터의 주소를 Spec 에서 찾아 적는다. 이때 주소는 ATmel사의 스펙북이라면 뒷쪽에서 찾을 수 있다.
- 예제로 사용할 레지스터인 DDRF의 주소를 찾는다.
- 헤더 파일에 아래와 같이 기본적인 명시(define)를 한다.
#define DDRF 0x61
- 주소의 타입은 unsigned char * 이기 때문에 캐스팅을 해주고 다시 한번 괄호로 싸준다..
#define DDRF ((unsigned char*)0x61)
-
주소가 가리키는 곳을 사용해야 하기 때문에 괄호 앞에 포인터를 찍어준다.
#define DDRF *((unsigned char*)0x61)
- 컴파일러에 의해 의도적이지 않게 변경되는 것을 막기 위해 volatile을 붙여 준다.
#define DDRF *((volatile unsigned char*)0x61)
- 완성
'Embedded > Atmega128' 카테고리의 다른 글
레지스터 주소, 스펙보고 직접 등록하기 (0) | 2012.12.28 |
---|