Trích:
Nguyên văn bởi littlephoc
Mình thường thấy trong các sample CCS code, thường sử dụng giá trị 20Mhz cho delay:
#use delay(clock=20000000)
Mình hiểu là dùng chỉ thị này khi dùng delay_ms() function nhưng chưa hiểu hết ý nghĩa thực sự của nó
Mình dùng PIC8F2620, đọc datasheet thì thấy tần số hoạt động của nó là 8Mhz. Vậy mình sẽ sửa lại
#use delay(clock=8000000)
thì có đúng hay không.
Hiện mình đang lập trình để send key từ hyperterminal của máy tính đến cổng RS232 và muốn nó print lại ký tự đó lên màn hình terminal. Nhưng vẫn không được. Và không biết là làm sao để xác định được mình đang sai ở đâu.
(dùng picdem 2 plus , board màu đỏ, CCS version 4.017)
#include <18F2620.h>
#include <stdio.h>
#fuses HS,NOWDT,PUT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(BAUD=9600,parity=N,XMIT=PIN_B1, RCV=PIN_B4,bits=8,stream=pc)
#define KEYHIT_DELAY 500 // in milliseconds
void main()
{
char c;
while(1){
c= getch();
putc(c);
delay_ms(100);
}
}
|
#use delay(clock=20000000)
dùng để báo cho trình biên dịch biết tần số thực của xung clock ở mạch ứng dụng thực. Từ đó trình biên dịch sẽ tính ra được số chu kỳ máy cần chờ tương ứng với một giá trị delay nào đó trong chương trình. Bạn phải xem trên board PICDEM 2 Plus đó có tần số của bộ dao động hay thạch anh nối vào PIC18F2620 là bao nhiêu, dùng giá trị đó (đổi thành Hz) và thay vào chỗ 20000000 trong khai báo trên.
Thân,