BASIC4MCU | 질문게시판 | 인터럽트 질문입니다.
페이지 정보
작성자 ff2sadf 작성일2018-12-16 16:43 조회4,674회 댓글2건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6945
본문
인터럽트 발생시에 2가지 음계를 배열시켜 A음계배열은 최초 1번만 재생되도록하고 2번째부터는 계속 B음계배열만 재생시키려고 생각중입니다.
타이머 인터럽트 내부안에
switch(i)
case 0: A음계
default : B음계
i++;
이런식으로 코드를 짜게되면 최소 i값에 0이 들어가있었는데 인터럽트 발생시에 다시 i값이 0으로 초기화 되버려 A음계만 재생시키게 됩니다.
메인함수에서 i=0을 설정해줘도 인터럽트가 끝나고 나면 다시 메인함수로 돌아가서 i=0이 되버리기때문에 어떻게해서든 A를 무시하고 B만 재생시킬수가 없습니다. 해결책이 있을까요?
댓글 2
조회수 4,674master님의 댓글
master 작성일
대충 설명해드리면 코드에 적용하기 어려울텐데요
질문을 대충 하면 답변도 대충 적을 수 밖에 없습니다.
master님의 댓글
master 작성일
switch(i){
case 0: i=1; A음계 break;
default : B음계 break;
}
인터럽트는 주의할 사항이 몇가지 있는데
전체 소스를 첨부한 것이 아니라서 체크할 수가 없습니다.
하다가 문제되서 다시 질문 하실 때에는 전체소스를 첨부하세요