![]() |
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!!! |
help me,plz
|
không ai giup đỡ mình hết vậy...buồn vãi...
|
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