Page 690 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 690
// 안정화 변수 1로 토글하여 0.3초간 입력받지 못하게 함
i=1;}
#asm("sei") }
// 버튼2. 변수감소 및 LED2 제어
interrupt [EXT_INT1] void ext_int1_isr(void) {
#asm("cli") // 이 인터럽트 실행동안 다른 인터럽트 허용하지 않음
// 안정화 변수 0일 때 실행
if (i==0){
/* 모드1(타이머)일 때 : 커서 위치에 따라 타이머 감소
모드3(시계 설정)일 때 : 커서 위치에 따라 시계 감소
모드4(LED 설정)일 때 : LED2 on/off */
switch (mode){
case 1:
/* 커서 위치에 따라 타이머 감소
c(커서)는 1:시 2:분 3:초 4:기본위치 */
if (c==1)timer-=3600; // 커서가 '시'면 3600초(1시간) 감소
if (c==2)timer-=60; // 커서가 '분'이면 60초(1분) 감소
if (c==3)timer--; // 커서가 '초'면 1초 감소
if (c==4)break;
if (timer<0)timer+=86400; // 커서가 기본위치면
break;
case 3:
/* 커서 위치에 따라 시계 감소
c(커서)는 1:시 2:분 3:초 4:기본위치 */
if (c==1)watch-=3600;
if (c==2)watch-=60;
if (c==3)watch--;
// 00:00:00 미만시 24시간 더함
if (watch<=0)watch+=86400;
break;
case 4:
// LED2 토글
if (!(PORTF&0x02))PORTF|=0x02;
- 683 -