실험4 마이크로컨트롤러 Internal Memory의 이해 예비보고서
- 최초 등록일
- 2015.09.15
- 최종 저작일
- 2014.09
- 12페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
I. [제4장] Internal Memory의 이해
1. ATMega128 데이터 메모리 구조
2. AVR Studio 디버깅 모드 시작
3. AVR Studio로 내부 메모리와 레지스터 이해하기
II.[제5장] 인터럽트
1. 폴링과 인터럽트 그리고 인터럽트 서비스 루틴
2. ATMega128 인터럽트
3. 인터럽트로 LED 점멸시키기
4. 인터럽트로 스톱워치 만들기
본문내용
1. ATMega128 데이터 메모리 구조
1) ATMega128 내장 데이터 메모리
① RAM
- 레지스터 : 범용레지스터
I/O레지스터
확장 I/O 레지스터
- SRAM
② ROM
- EEPROM
EEPROM은 별도의 레지스터를 통하여 특별한 방식으로 액세스, 나머지는 모두 64KB의 데이터 메모리 영역에 맵핑되어 있다. 즉, EEPROM을 제외한 모든 데이터메모리는 데이터 메모리 액세스용 어드레스 0x0000~0xFFFF 번지에 맵핑되어 있으며, 최하위 영역은 레지스터로 사용되고, 그 다음 영역이 내부 SRAM이며, 그 윗부분이 외부 데이터 메모리 영역이다.
2) I/O레지스터와 확장 I/O레지스터
① I/O레지스터?
- ATmega128에 내장된 각종 I/O 디바이스들을 제어하기 위한 레지스터
- 엑세스하는데 IN/OUT 명령을 사용.
- 실제로 0x0020~0x005F의 번지 영역에 존재하지만
IN/OUT 명령에서는 0x00~0x3F의 번호로 지정한다는데 유의.
즉, 0x0020 번지에 있는 PINF 레지스터를 R0 레지스터로 읽어 들이려면 IN R0,0x0020 이라고 하지 않고 IN R0,0x00이라고 해야 한다는 것이다.
② 확장 I/O레지스터?
- ATmega128에 새로 추가된 각종 I/O 디바이스들을 제어하기 위한 레지스터.
- 0x0060~0x00FF의 160개 번지에 존재.
- 이것들을 엑세스하려면 I/O 레지스터와 달리 IN/OUT 명령을 사용할 수 없고 외부 데이터 메모리처럼 LD/LDS/LDD 및 ST/STS/STD 명령만을 사용하여야 한다.(16비트)
2. AVR Studio 디버깅 모드 시작
사용하려는 에뮬레이터나 시뮬레이터를 선택
사용하려는
디바이스를 선택
1) 프로젝트 만들기 (프로젝트에 필요한 항목 지정 – JTAG ICE, ATMega128)
<그 림>
2) Configuration Option 설정 (Project – Configuration Option Select)
참고 자료
없음