IT

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
Posted by sinpk