PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Ứng dụng Capture của timer1 (http://www.picvietnam.com/forum/showthread.php?t=36905)

ndminh1307 29-12-2017 10:12 PM

Ứng dụng Capture của timer1
 
Em có chương trình viết để đọc giá trị timer1 khi có xung chân CCP1(RC2). Theo em biết, khi có xung xuống ở chân RC2 thì giá trị timer 1 sẽ được lưu vào thanh ghi CCPR1L (biến CCPRL). Nhưng em cho hiển thị LCD thì giá trị chỉ từ 0 - 255. Mà timer 1 lại là timer 16 bit, giá trị đếm từ 0-65535. Chương trình của em có đúng không ạ? Nếu đúng tại sao giá trị timer1 chỉ từ 0-255 ạ?
Code CCS:
#include <16f877a.h>
#fuses noput,hs,nolvp,nobrownout,noprotect
#use delay(clock=20M)

#define LCD_ENABLE_PIN PIN_D2
#define LCD_RS_PIN PIN_D0
#define LCD_RW_PIN PIN_D1
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c>

#byte CCPRL = 0x15
#byte CCPRH = 0x16
#bit CCP1IF = 0x0c.2
long int count = 0, i;
int c1,c2,c3,c4,c5;

void main(){
set_tris_c(0xFF);
setup_CCP1(CCP_CAPTURE_FE);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
set_timer1(0);
lcd_init();
CCPRL = 0;
CCPRH = 0;
while(1){
count = CCPRL;
i = count;
c1 = i/10000;
i = i%10000;
c2 = i/1000;
i = i%1000;
c3 = i/100;
i = i%100;
c4 = i/10;
c5 = i%10;

lcd_gotoxy(1,1);
lcd_putc("c=");

lcd_gotoxy(5,1);
lcd_putc(c1+48);
lcd_gotoxy(6,1);
lcd_putc(c2+48);
lcd_gotoxy(7,1);
lcd_putc(c3+48);
lcd_gotoxy(8,1);
lcd_putc(c4+48);
lcd_gotoxy(9,1);
lcd_putc(c5+48);

if(CCP1IF == 1){
count = CCPRL;
i = count;
c1 = i/10000;
i = i%10000;
c2 = i/1000;
i = i%1000;
c3 = i/100;
i = i%100;
c4 = i/10;
c5 = i%10;

lcd_gotoxy(1,1);
lcd_putc("c=");

lcd_gotoxy(5,1);
lcd_putc(c1+48);
lcd_gotoxy(6,1);
lcd_putc(c2+48);
lcd_gotoxy(7,1);
lcd_putc(c3+48);
lcd_gotoxy(8,1);
lcd_putc(c4+48);
lcd_gotoxy(9,1);
lcd_putc(c5+48);
}

}
}


Múi giờ GMT. Hiện tại là 04:18 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam