PDA

View Full Version : tính thời gian chính xác cho hàm Delay()


kiemkhach10
01-04-2010, 06:42 PM
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
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
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
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
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.