xin hỏi mọi người mình khai báo capture ở ccp1 thế này đã đúng chưa mà sao chưong trình ko chạy vào ngắt được. Biên dịch bằng HITECH
Code:
#include <htc.h>
#include <stdio.h>
#include <math.h>
#include "lcd.h"
__CONFIG (INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT& BORDIS & IESODIS & FCMDIS & LVPDIS);
unsigned long f=0;
void main()
{
lcd_init();
TRISC2=1;
RC2=1;
TRISD0=0;
TMR1CS=0;
T1CKPS1=1; T1CKPS0=0; //prescaler=1:4, 1Hz<f<250kHz
//T1SYNC=1;
TMR1H=TMR1L=0;
TMR1GE=0;
TMR1ON=1;
CCP1CON=0b00000101; //capture xay ra khi co xung len
CCPR1H=CCPR1L=0;
CCP1IE=1; //ngat capture
CCP1IF=0;
PEIE=1;
GIE=1; //ngat toan cuc
while(1)
{
}
}
void putch(char c)
{
lcd_putc(c);
}
void interrupt isr()
{
if(CCP1IE&&CCP1IF)
{
TMR1H=TMR1L=0;
// f=round((65535-(CCPR1H*256+CCPR1L))*4/1000000);
// lcd_gotoxy(0,0);
// printf("\ftan so:\r\n %d xung/s",f);
RD0^=1;
CCP1IF=0;
}
}

Comment