ATMega256
20140527 - Seven_Segment 함수화 및 인터럽트 스위치 사용하여 Seven_Segment 타이머 스톱, 스타트
Owen.K
2014. 5. 27. 17:33
인터럽트 스위치 사용하여
Seven_Segment 타이머 스톱, 스타트
- 위의 그림처럼 함수를 이용해서 (SevenSeg_Init, SevenSeg_print, SevenSeg_delay)수가 번갈아 뜰수 있도록 한다.
Timer Counter
- 사용하지 않을 것이기 때문에 위의 테이블의 Normal Port Operation, OC0A disconnected 로 설정해준다.
- COMB도 사용하지 않기 때문에 위와 같이 (0,0)설정해준다.
- Normal mode 사용한다. (0, 0)
- 7, 6 bit는 사용하지 않으며 3bit - WGM02(waveform generation mode)는 normal 로 넣어준다.
- 64분주비 사용한다. (주파수가 동일하기 때문에 다시 계산할필요는 없다.)
- OVERFLOW interrupt 를 활성화 시킨다.(0 bit - TOV0)
- 위의 과정을 종합해서 초기화를 시켜 주면 다음과 같다.
{Normal Port Operation, OC0A and OC0B disconnected , waveform generation mode는 normal mode, clock 분주비는 64로 설정, overflow interrupt를 이용한다.}
void __vector_23(void) __attribute__((signal, used, externally_visible));
- 24vector 사용한다.