BASIC4MCU | 질문게시판 | 답변 : Atmega128에서 시계코드에 스톱워치, 타이머를 추가하고 싶습니다.
페이지 정보
작성자 master 작성일2023-12-13 17:33 조회698회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=23559
본문
while(1){
Time_out();
if(cnt>=250){ cnt=0;
if(++sec>=60){ sec=0;
if(++min>=60){ min=0; if(++hour>=24)hour=0; }
}
}
}
}
무한루프의 질문 코드입니다.
일부 문제가 있는 코드를 수정했습니다.
char stop_flag=1; // 초기값 stop
전역변수 추가하시고
interrupt [EXT_INT6] void external_int6(void){
stop_flag^=1; // 토글
}
인터럽트에서 플래그를 반전(토글 시키면 됩니다.)
while(1){
Time_out();
if(stop_flag==0){ // Stop 상태가 아니라면 카운트 증가
if(cnt>=250){ cnt=0;
if(++sec>=60){ sec=0;
if(++min>=60){ min=0; if(++hour>=24)hour=0; }
}
}
}
}
}
플래그를 체크해서 카운트를 증가 할 것인지 증가하지 않을 것인지 처리하면 되겠죠//타이머0의 실행을 INT7로 제어하고 싶은 건가요?TCCR0 =0x04;메인 설정에서 이 코드를 제거하면 타이머가 동작하지 않습니다.interrupt [EXT_INT7] void external_int7(void){
TCCR0 =0x04;
}
인터럽트 안에서 실행하면 됩니다.
댓글 0
조회수 698등록된 댓글이 없습니다.