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

