인터럽트를 이용해서 동작 시키기
왜 마이컴 제어에서 인터럽트가 그리 중요하다고 하는지 알겠습니다
참고 : 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 |