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)
-   -   Hàm delay trong c18 (http://www.picvietnam.com/forum/showthread.php?t=11037)

handsome3746 03-09-2011 02:07 PM

Hàm delay trong c18
 
mấy sư huynh cho em hỏi tí:hình như hàm delay trong c18 không chính xác phải không ạ...
em muốn delay 1s nhưng kết quả lại hơn 1s...
code của em thế này:
#include <p18f4431.h>
#include <delays.h>
#pragma config WDTEN = OFF
#pragma config LVP = OFF
#pragma config OSC = HS

void main()
{
TRISB=0;
PORTB=0;
while (1)
{
PORTB=0XFF;
Delay10KTCYx(250);
Delay10KTCYx(250);
PORTB=0;
Delay10KTCYx(250);
Delay10KTCYx(250);
}

bác nào giúp với...chắc em dùng timer để đếm quá...
nhưng hơi lạ,sao hàm có sẵn lại thiếu chính xác đến vậy...hic...
help...help...
thanks in advance!!!

handsome3746 03-09-2011 03:13 PM

help me,plz

handsome3746 04-09-2011 09:49 PM

không ai giup đỡ mình hết vậy...buồn vãi...

rocket42 05-09-2011 05:57 PM

như thế này nhé bạn:
cái hàm Delay10KTCYx() tức là delay 10^4 chu kì xung nhịp của thạch anh bạn sử dụng.
ở trên theo như bạn sử dụng thì nếu đúng 1s thì bạn phải sử dụng thạch anh 5Mhz
nếu bạn sử dụng thạch anh 4Mhz hoặc nhỏ hơn thì hiển nhiên là chưong trình của bạn sẽ delay nhiều hơn.
với chưong tình của bạn thời gian delay t= 5.10^6/f (f: là tần số dao động thạch anh)
f=5Mhz thì t=1s
t=4Mhz thì t=1.25s
ok?


Múi giờ GMT. Hiện tại là 02:25 AM.

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