Page 689 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 689
// 버튼1. 변수증가 및 LED1 제어
interrupt [EXT_INT0] void ext_int0_isr(void){
#asm("cli")
// 안정화 변수가 0일 때 실행
if(i==0){
/* 모드1(타이머)일 때 : 커서 위치에 따라 타이머 증가 및 타이머 제어
모드3(시계 설정)일 때 : 커서 위치에 따라 시계 증가
모드4(LED 설정)일 때 : LED1 on/off */
switch (mode){
case 1:
// 커서 위치에 따라 타이머 증가
// c(커서)는 1:시 2:분 3:초 4:기본위치
if (c==1) timer+=3600;
if (c==2)timer+=60;
if (c==3)timer++;
// 23:59:59 초과 시 24시간 뺌
if (timer>=86400) timer-=86400;
// 커서가 기본 위치이면 타이머 실행여부 결정
if (c==4){
if (timer>0)timer_flag=~timer_flag;}
break;
case 3:
// 커서 위치에 따라 시계 증가
if (c==1)watch+=3600;
if (c==2)watch+=60;
if (c==3)watch++;
// 23:59:59 초과 시 24시간 뺌
if (watch>=86400) watch-=64000;
break;
case 4:
// LED 토글
if (!(PORTF&0x01))PORTF|=0x01;
else PORTF&=0xfe;
break;}
- 682 -