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