2012. 1. 20. 02:32 마이크로 컨트롤러
DDRB=0xFF 의 의미
1. DDRB는 <iom128.h>에 다음과 같이 정의된다.
/* Data Direction Register, Port B */
#define DDRB _SFR_IO8(0x17)
#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
# 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를 저장하라!!!
메모리주소 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 |