메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

묻고 답하기
WhiteAT2008.01.09 17:00
1.
__interrupt void timer0_compare_isr(void)

{    
      if(Disp_timer) Disp_timer--; //fnd,led timer
      if(LED_timer) LED_timer--;//LED blink timer
      if(Key_timer) Key_timer--; //key input timer       
}
=>Disp_timer 를 unsigned 로 선언하셨죠?
signed 로 선언하였을 경우에는 if(Disp_timer>0) Disp_timer--;

2.
void Disp_operation(void) {
 
  if(Disp_timer>0) return;
 
  Disp_timer =1;
}
함수에 Disp_timer  , LED_timer 2개를 동시에 사용하였는데
그러면 로드가 많이 걸릴수 있으므로, 서로 다른 함수로 사용하시는게..

타이머를 Disp_timer =1;로 했기 때문에 main()의 루프가 실행될때마다 실행이 되겠죠?(즉 150uS마다)

LED_timer 는 사용되지 않고 있네요.^^  
if(Disp_timer>0) return;  <== 요놈만 체크를 하니까요^^.


3.
Key_timer =1;

    키 함수도딜레이를 충분히 주세요. 1로 주면 150uS마다 키를 검색할테니까요.
    200mS 정도는 주는게 좋을거 같은데  Key_timer =1000; 정도 해보세요.^^



사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )