8비트 오버플로우 인터럽트 설정
1. TCCR0 설정
2. TCNT0 설정
3. TIMSK 설정
4. 인터럽트 활성화
1초에 16000000 클럭 동작
1/1000 = 16000
16000 / 프리스케일러 = 1초당 카운터 수
Ex) 16000 / 64 = 250
① TCCR0 레지스터 중에서 하위 0~3비트로 프리스케일러(분주비) 설정
32를 분주비로 설정할 경우 500이 나오는데,
TCNT0가 8비트 이기 때문에 256을 벗어나기 때문에 사용할 수 없다.
공식 TCNT0 = 256 – (CPU_CLOCK/TICKS_PER_SEC/PRESCALER)
CPU_CLOCK = 16,000,000 = 16MHz
TICKS_PER_SEC = 1,000
PRESCALER = 64
② TCNT0 = 256 – 250;
250회 마다 1회씩 오버플로우 발생
사용자는 초기화 시킬 만 사용(인터럽트 안에서 TCNT0 다시 설정)
③ TIMSK레지스터의 0비트에 1을 설정
④ 상태 레지스터(SREG)의 I비트에 1을 설정
//sei();
'하드웨어 > ATmega128' 카테고리의 다른 글
내부 EEPROM 제어 (0) | 2011.06.27 |
---|---|
Avr 128 Memory Map (0) | 2011.06.23 |
1초당 FND 숫자 증가&LED ON/OFF (0) | 2011.06.16 |
AVR128 메모리 어드레스 (0) | 2011.06.13 |
AVR128 특징 (0) | 2011.06.01 |