1. DDRB는 <iom128.h>에 다음과 같이 정의된다.
/* Data Direction Register, Port B */
#define DDRB      _SFR_IO8(0x17)

2. _SFR_IO8는 <sfr_defs.h>에 다음과 같이 정의된다.
#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + __SFR_OFFSET)

3. __SFR_OFFSET은  <sfr_defs.h>에 다음과 같이 정의된다.
#ifndef __SFR_OFFSET
#  if __AVR_ARCH__ >= 100
#    define __SFR_OFFSET 0x00
#  else
#    define __SFR_OFFSET 0x20
#  endif
#endif

4. _MMIO_BYTE은  <sfr_defs.h>에 다음과 같이 정의된다.
#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))

따라서, DDRB=0xFF 의 의미는 다음과 같다.
(*(volatile uint8_t *)(0x17+0x20)) =0xFF

메모리주소 0x37 (DDRB로 사용되는 메모리 주소)에 0xFF를 저장하라!!!

'마이크로 컨트롤러' 카테고리의 다른 글

거버파일 뷰어  (0) 2012.01.25
LED 구동방법  (0) 2012.01.24
Kanda STK300 설치  (0) 2012.01.18
트랜지스터  (0) 2012.01.18
7805: 전압 레귤레이터  (0) 2012.01.18
Posted by buykiwi

블로그 이미지
친절상담 무료견적 정확시공
buykiwi

카테고리

분류 전체보기 (65)
CAD (2)
프로그래밍 (19)
네트워크/보안 (4)
인터넷/웹사이트 (13)
데이타베이스 (0)
운영체제(OS) (6)
마이크로 컨트롤러 (12)
모바일 (0)
게임 (0)
그래픽스/3D (4)
멀티미디어 (0)
사무자동화/PC/IT (3)
기타 (1)

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함