인터럽트를 이용해서 동작 시키기
왜 마이컴 제어에서 인터럽트가 그리 중요하다고 하는지 알겠습니다

참고 : PIC마이컴용 C언어 CCS-C실전가이드(주식회사 인샘)

#include <16F887.h>            

#use delay(clock=4000000)
#byte portd=0x08

#define one_sec_set 39060	//1초를 지정했는데 계산이 틀려서 그런지 잘 안됨;
long int sec;
int cnt;

//rtcc인터럽트 발생시 이곳으로 온다
#int_rtcc
rtcc_isr(){	//시간이 one_sec_set 만큼 흐를 때 마다 매트릭스 표시 전환하는 함수
   for(;;){
   for(sec=0;sec<=one_sec_set;sec++){
      portd=0b00000110;
      portd=0b00001001;
   }
   for(sec=0;sec<=one_sec_set;sec++){
      portd=0b00000101;
      portd=0b00001010;
   }
}
}

void main(){
   set_tris_d(0x00);	//D포트를 전부 출력으로 만든다
   portd=0x00;	//port d clear
   setup_counters(rtcc_internal,wdt_2304ms);	
	//rtcc_timer:timer0(rtcc)의 타이머 소스를 내부 클럭에 할당.
	//wdt_2304ms : 2304ms마다 오버플로우
   
   sec=one_sec_set;
   cnt=0x00;
   enable_interrupts(int_rtcc);	//timer0(rtcc)인터럽트활성화
   enable_interrupts(global);	//인터럽트 발생허가. 이후로 인터럽트발생
   
   for(;;){
   }
}




'(예전취미)전자회로 공부 > PIC-44Pindemoboard' 카테고리의 다른 글

44pin 데모보드 전에 올린 소스들을 보니..  (0) 2011.05.23
pin out 될 때 전압  (0) 2010.07.19
도트 매트릭스 대각선 출력  (0) 2010.05.27
Hello, 2*2 Dot Matrix  (0) 2010.05.26
Hello, PortD(F0)  (0) 2010.05.24
Timer0  (0) 2010.03.01
Reversible 풀이중2  (0) 2010.03.01
SETUP_ADC_PORTS()  (0) 2010.03.01
Posted by 공돌이pooh
,