Presentation is loading. Please wait.

Presentation is loading. Please wait.

DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원 2009.04.07.

Similar presentations


Presentation on theme: "DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원 2009.04.07."— Presentation transcript:

1 DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원

2 DK-128 메인보드 – 연산, 제어 확장보드 - 입출력 Serial port Parallel port FND LED
high low FND low high LED low high EEPROM & Sensor Tact Switch Atmega 4K EEPROM EEPROM Power 1:TWI clock, 2:TWI data, 상위5~8:Infrared sensor

3 DK-128의 결선 8 line j19 - red j15 + black 61 1 1 j18 25 j16 54 - 35 42 +

4 LED OUT ATMEGA128 ADC=아날로그신호입력 Port A : I/O, 상위어드레스(ALE의한제어) 아날로그전원
프로그램 쓰기 LED OUT 전원 Port E : I/O, 외부인터럽트, ISP 프로그래밍 데이터/주소 모드 ATMEGA128 전원 Port B : I/O, 타이머, 카운터, PWM, SPI 외부데이터메모리 접근 모드 Oscillator Port D : I/O, TWI, UART직렬통신 Real time clock시 Oscillator

5 사용 헤더파일 및 환경 설정 값 Avr/io.h Avr/signal.h Avr/interrupt.h
CPU clock= 16,000,000 Hz Ticks per sec = 1,000 Prescaler = 64 // 클럭의 배수 – 크기,오버헤드 SIGNAL(SIG_OVERFLOW0) : timer0의 오버플로우함수

6 1. TCCR0 (T/C Control Register)
Prescaler(배수) 설정: 64 (계산식 편하게) 16MHz의 모든 클럭을 세기에는 데이터크기와 성능의 문제가 있어 배수를 이용. 비트 7 6 5 4 3 2 1 FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 모드 W R/W 초기값 CS02 CS01 CS00 Prescaler 값 타이머/카운터 정지 1 Prescaler 사용하지 않음 8 32 64 128 256 1024

7 2. TCNT0 (Timer Counter Register)
하드웨어에 의해서 증가되는 레지스터 사용자는 초기화 시킬 때만 사용 OCR0 레지스터와 비교 인터럽트 할 경우 자동 초기화 비트 7 6 5 4 3 2 1 TCNT0[7:0] 모드 R/W 초기값 TCNT0 = 256 – (CPU_CLOCK/ TICKS_PER_SEC/ PRESCALER) 1초 1000번 배수 TCNT0 = 6 CPU_CLOCK = 16,000,000 TICKS_PER_SEC = 1,000 PRESCALER = 64 - TCNT0 레지스터는 1byte 크기 타이머카운터는 6부터 시작해 256이 되면 오버플로우가 발생하고 6으로 초기화 1/1000초(250회)마다 1회씩 오버플로우 발생

8 3. TIMSK (Interrupt Mask Register)
주기적인 인터럽트 처리 OCIE0: 매치 인터럽트 활성화 (1) TOIE0: 오버플로우 인터럽트 활성화 (1) 상태레지스터의 I비트 1 설정 sei(); 비트 7 6 5 4 3 2 1 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 모드 R/W 초기값

9 1초마다 LED 깜빡이는 프로그램 구현 시작 1초대기 시작 1 클럭 경과 시간변수 = 0 LED 초기화 64클럭 경과?
거짓 TCCR0 설정 시간변수 < 1초 TCNT0 초기화 호출 거짓 TIMSK 설정 TCNT0 1 증가 1초대기 종료 시간변수 인터럽트활성화 거짓 TCNT0 Overflow? 복귀 오버플로우신호 LED 반전 호출 시간변수 1증가 1초 대기 SIG_OVERFLOW0 발생 무한 TCNT0 초기화 종료 신호처리종료 사용자 프로그램 흐름 시스템 흐름

10 실습 예제 1/3

11 실습 예제 2/3

12 실습 예제 3/3 (5점) 전방 선언한 함수를 구현하기 1초 마다 LED를 토글시키는 프로그램


Download ppt "DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원 2009.04.07."

Similar presentations


Ads by Google