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 사용한다.