본문 바로가기

교육/ATmega2560

ATmega2560 TimerCounter와 인터럽트 이용하여 7 Segment증가시키기


어제 했었던 7 Segment 의 함수를 따로 만들어 편집한다.

uc1은 1의 자리 숫자를 출력하는 변수이다.
  • font[]의 안에 위치한 숫자만을 쓸 수 있게 만드는 변수.


그리고 smart.c를 수정했음








7 Segment를 TimerCounter를 이용하여 1초마다 숫자를 증가시키는 소스



그 후 smart.c - main함수에서 디파인 되어있는 DELLAY대신 
Dellay_ms(1000); 을 주게되면 1초마다 증가되는 숫자를 볼 수 있다.





인터럽트를 이용하여 푸쉬버튼을 누를시에 숫자가 STOP  | START 되게 하기

 
위와 같이 INT 6번과 INT7번 설정한다.

내부인터럽트 설정



smart.c 에서 소스를 보기 편하게 하기위해 Init들을 System_Init함수에 넣어 main에서는 System_Init함수만을 호출해 주고있으며,
내부 인터럽트를 smart.c에서 호출하여준다.

7번 INT로 & ~으로 Timsk 를 0으로 만들어   Stop을 걸고 6번 INT로 다시 Timsk를 1로 만들어 Start를 해주고있다.