Trích:
Nguyên văn bởi kiemkhach10
mình viết 1 hàm Delay như thế này:
#include <htc.h>
__CONFIG(HS & WDTDIS& LVPDIS& BORDIS);
void Delay(unsigned char n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<100;j++);
}
mình dùng PIC16F88 và THACH ANH ngoài 20000000M.
mình tính mỗi 1 chu kì máy là 0,2us.
mình để: Delay(200) = 200 x 0,2 x (100x255)=1020000 us ~ 1s
ko hiểu sao khi mình chạy trên mạch thật thì thời gian ko đúng và sai lệch rất nhiều.
mong các bạn chỉ giúp
cám ơn các bạn nhiều!
|
Chào bạn, bạn có kiểm soát được vòng lặp FOR mất bao nhiêu thời gian ko? con số 0,2 của bạn nên xem xét lại. nếu muôn đơn giảng thì dùng hàm delay có sẵn đi.
ví dụ: delay_ms(1000); thì ta có được 1s như mong muốn.