Trích:
Nguyên văn bởi namqn
1. #use delay(clock=xxx) không phải là lệnh mà là chỉ dẫn, để báo cho trình biên dịch biết rằng clock của bạn là xxx, từ đó trình biên dịch mới tính ra số chu kỳ máy cần làm trễ để đạt được thao tác làm trễ trong các hàm delay_us(), và delay_ms(). Ví dụ, nếu bạn dùng chỉ dẫn #use để cho biết clock = 4000000 (Hz), như vậy trình biên dịch sẽ tính ra được (như bạn đã tính ra ở trên) là mỗi chu kỳ máy sẽ tiêu tốn 1 us. Như vậy, khi bạn gọi hàm delay_ms(2) thì trình biên dịch sẽ biết cần phải làm trễ 2 ms, và mỗi ms sẽ tương ứng với 1000 chu kỳ máy.
Bạn thử khai báo #use delay(clock=8000000) và dùng tần số clock 4 MHz xem có phải delay_ms(1000) sẽ làm trễ 2 giây hay không.
2. Bạn debug bằng IDE nào? Bạn có thể dùng chế độ Step Over để chạy lệnh gọi hàm delay_ms() như một lệnh hay không?
Thân,
|
Em dùng MPLAB,và đã debug bằng các công cụ step over,step into rồi ghi các mốc thời gian dưới thanh trạng thái nhưng thấy chưa khớp.Để em kiểm tra lại.Còn các chu kỳ lệnh của các lệnh trong PIC C thì sao hả anh ?