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)
-   -   tính thời gian chính xác cho hàm Delay() (http://www.picvietnam.com/forum/showthread.php?t=6061)

kiemkhach10 01-04-2010 06:42 PM

tính thời gian chính xác cho hàm Delay()
 
mình đang sử dụng PIC16F88 mình đang cần đặt thông số 1 cách chính xác theo thời gian cho hàm Delay( ví dụ Delay 1s chẳng hạn)
mình viết băng HI-TEC PIC . dùng thạch anh 20M. ai có thể giúp mình. cám ơn nhiều

kiemkhach10 02-04-2010 09:50 AM

ham Delay chính xác
 
ko ai giúp mình a?hoặc có tài liệu tham khảo cũng được:D
cám ơn nhiều!

dhbk3i 03-04-2010 12:05 AM

bạn muốn hàm delay chính xác thì phải dùng timer

kiemkhach10 03-04-2010 07:58 AM

Trích:

Nguyên văn bởi dhbk3i (Post 34766)
bạn muốn hàm delay chính xác thì phải dùng timer

bạn có thể nói rõ hơn ko?
dùng timer mấy và tính khoảng thời gian như thế nào?
cám ơn bạn nhiều!

hongquyen 03-04-2010 11:01 PM

bạn viết ct trong ccs-c thì có hàm delay sẵn rồi, bạn muốn delay bao nhiêu giây mà chằng dc.(chính xác luôn- khỏi phải tính toán gì cả)

kiemkhach10 08-04-2010 12:01 AM

Trích:

Nguyên văn bởi hongquyen (Post 34802)
bạn viết ct trong ccs-c thì có hàm delay sẵn rồi, bạn muốn delay bao nhiêu giây mà chằng dc.(chính xác luôn- khỏi phải tính toán gì cả)

cám ơn bạn,nhưng mình đang viết bằng Hi-Tech Pic nên mới thấy mắc, không biết có tài liệu nào viết về cái này ko nhỉ?

kiemkhach10 07-05-2010 05:26 PM

các cao thủ có thể giải thích dùm hàm này được ko?
/ Delay Function

#define _delay_us(x) { unsigned char us; \
us = (x)/(30000000/FOSC)|1; \
while(--us != 0) continue; }


void _delay_ms(unsigned int ms)
{
unsigned char i;
do {
i = 4;
do {
_delay_us(164);
} while(--i);
} while(--ms);
}
cám ơn nhiều!

0903579509 14-05-2010 10:53 PM

Trích:

Nguyên văn bởi hongquyen (Post 34802)
bạn viết ct trong ccs-c thì có hàm delay sẵn rồi, bạn muốn delay bao nhiêu giây mà chằng dc.(chính xác luôn- khỏi phải tính toán gì cả)

Muốn chính xác phải dùng timer ở mức ưu tiên cao nhất đẻ không có công việc gì giành quyền ưu tiên khi ngắt timer xảy ra. Dùng hàm delay() không thể chính xác Khi ngắt xảy ra trong khi CPU thực hiện hàm này. Hơn nữa dùng hàm delay sẽ chiếm nhiều tài nguyên của CPU .

hdaihocmo 30-05-2010 03:16 PM

CHÀO CÁC BẠN
MÌNH ĐANG ĐOC CUỐN SÁCH 'CÁC VI ĐIỀU KHIỂN PIC ' CỦA TS . NGUYỄN MẠNH GIANG,TRONG ĐÓ CÓ ĐOẠN THẦY VIẾT VỀ HÀM TRỄ 0,5 GIÂY (thạch anh tần số 4 Mhz )NHƯ THẾ NÀY :
"DELAY
CLRF REG1
CLRF REG2
MOVLW .2
MOVWF REG3
DEL
DECFSZ REG1
GOTO DEL
DECFSZ REG2
GOTO DEL
DECFSZ REG3
GOTO DEL
RETURN
END"
Mong các bạn chỉ bảo giúp tại sao , công thức tình như thế nào mà mình lại tạo ra hảm trễ 0,5 giây đơn giản như vậy.


Múi giờ GMT. Hiện tại là 06:33 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