'Embedded/Atmega128'에 해당되는 글 1건

  1. 2012.12.28 레지스터 주소, 스펙보고 직접 등록하기 by 똘이 임덕규
기본 제공해주는 avr.h를 사용해도 되지만 필요한 레지스터만 define하여 사용할 수 있다.

최종모습은 아래와 같다.
#define DDRF *((volatile unsigned char *)0x61)
위 코드는 보다시피 스펙에 나와있는 DDRF의 주소를 Register Summary에서 직접 찾아서 적을 수 있다.


이해하기 쉽게 순서대로 적어보겠다.
  1. 사용할 레지스터의 주소를 Spec 에서 찾아 적는다. 이때 주소는 ATmel사의 스펙북이라면 뒷쪽에서 찾을 수 있다.
  2. 예제로 사용할 레지스터인 DDRF의 주소를 찾는다.
  3. 헤더 파일에 아래와 같이 기본적인 명시(define)를 한다.

    #define DDRF 0x61
    
  4. 주소의 타입은 unsigned char * 이기 때문에 캐스팅을 해주고 다시 한번 괄호로 싸준다..
    #define DDRF ((unsigned char*)0x61)
    
  5. 주소가 가리키는 곳을 사용해야 하기 때문에 괄호 앞에 포인터를 찍어준다.
    #define DDRF *((unsigned char*)0x61)
    
  6. 컴파일러에 의해 의도적이지 않게 변경되는 것을 막기 위해 volatile을 붙여 준다.
    #define DDRF *((volatile unsigned char*)0x61)
    
  7. 완성
저작자 표시
신고

'Embedded > Atmega128' 카테고리의 다른 글

레지스터 주소, 스펙보고 직접 등록하기  (0) 2012.12.28


티스토리 툴바