Page 688 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 688
unsigned char mode=1, c=4;
// 타이머 on/off 플래그, 시계 블링크 플래그
bit timer_flag=0,flag=0;
// 타이머카운터 변수
int tc=0;
// 타이머, 시계, 안정화 변수
long timer=0, watch=0, i=0;
// lcd 버퍼
unsigned char lcd_buff[15];
// 타이머카운터0 (16.6ms 클록)
interrupt [TIM0_OVF] void timer_int(void) {
// 0.5초마다 콜론 블링크, 1초 마다 시계 변수 증가
tc++;
if (tc==30)blink=0;
if (tc==61){
blink=1;
watch++;
// 23:59:59에서 1초 증가 시 00:00:00으로
if (watch==86400)watch=0;
// 타이머가 켜져있다면 감소, 타이머가 0이 되면 LED끔
if (timer_flag==1){ // 타이머 실행중이라면
timer--; // 타이머 1초 감소
if (timer==0){ // 타이머 시간이 다 되었다면
timer_flag=0; // 타이머를 종료 시킴
PORTF=0x00;} } // LED 끔
// 1초가 되면 타이머 카운터 변수 초기화
tc=0;}
/* 안정화 (스위치가 눌렸다면 I변수를 통해 0.3초동안 입력받지 못하도록 함)
0일 때 입력가능, 눌렸다면 1로 토글됨. 1~17(0.3초)동안 입력불가
if (i>=1)i++;
if (i==17)i=0; }
- 681 -