타이머 초기화
//초기화 void Init_timer() { //타이머 인터럽트 초기화 (64us, 560us, 1000us) //타이머 1 초기화 OpenTimer1(T1_ON|T1_IDLE_CON |T1_PS_1_8 , 640); OpenTimer4(T4_ON|T4_IDLE_CON |T4_PS_1_8 , 5600); OpenTimer5(T5_ON|T5_IDLE_CON |T5_PS_1_8 , 10000); mT1IntEnable(1); mT4IntEnable(1); mT5IntEnable(1);; mT1SetIntPriority(3); mT4SetIntPriority(3); mT5SetIntPriority(3); } //64us 타이머 인터럽트 루틴 void __ISR(_TIMER_1_VECTOR,ipl3) _t1(void) { mT1ClearIntFlag(); tmr1cnt++; g_Tick0++; if(tmr1cnt % 1000 == 0)// mPORTAToggleBits(BIT_0); } //560us 타이머 인터럽트 루틴 void __ISR(_TIMER_4_VECTOR,ipl3) _t4(void) { mT4ClearIntFlag(); tmr4cnt++; g_Tick1++; if(tmr4cnt % 1000 == 0)// 0.56초에 한번 mPORTAToggleBits(BIT_1); } //1000us 타이머 인터럽트 루틴 // void __ISR(_TIMER_5_VECTOR,ipl3) _t5(void) { mT5ClearIntFlag(); tmr5cnt++; g_Tick2++; if(tmr5cnt % 1000 == 0)//1초에 한번 mPORTAToggleBits(BIT_2); }레지스터를 이용해서 초기화
void Init_timer5() { T5CON = T5_IDLE_CON | T5_PS_1_8; TMR5 = 0; PR5 = 10000; T5CONSET = T5_ON; mT5IntEnable(1); mT5SetIntPriority(3); }
'Enginius > Firmware' 카테고리의 다른 글
NEC 코드 리모컨 (0) | 2010.04.16 |
---|---|
PIC32 - UART (2) | 2010.04.13 |
PIC32 - SPI (0) | 2010.04.13 |
PIC32 - PWM (0) | 2010.02.19 |
PIC32 - Input Capture (0) | 2010.02.19 |