Trích:
Nguyên văn bởi hanhluckyly
Anh Nam ơi anh có thể share giúp em chương trình nạp bootloader cua PIC18F458
20 MHz baud 115200 , trong đó anh tắt dùm em chức năng watch dog timer , em phát hiện ra hình như tất cả bootloader của PIC18F458 mà em có hình như đã config sẵn WDT là ON rồi
-Ah tiện thể anh cho em hỏi là nếu như khi nạp bootloader không có WDT thì trong chương trình CCSC mình có thể bật nó lên được không (hàm setup_WDT(ON)  và ngược lại nếu nạp bootloader mà có WDT thì mình có thể disable nó được không?
Cám ơn anh rất nhiều
|
Đã dịch bootloader theo yêu cầu của bạn (tôi gửi lên diễn đàn ngay sau khi dịch, nên chưa thử nghiệm bootloader với cấu hình này), những từ cấu hình đã thiết lập như sau:
Code:
CONFIG OSC = HS, OSCS = OFF
CONFIG PWRT = ON, BOR = ON, BORV = 27
CONFIG WDT = OFF, WDTPS = 128
CONFIG STVR = ON, LVP = OFF, DEBUG = OFF
Về câu hỏi của bạn, nếu trong từ cấu hình chúng ta tắt WDT thì có thể bật/tắt WDT bằng phần mềm, thông qua bit SWDTEN của thanh ghi WDTCON. Hàm nào của CCS C cho phép làm việc này thì tôi không rõ, vì tôi không dùng CCS C. Bạn có thể thử nghiệm và post lên diễn đàn để giúp cho những bạn khác. Nếu trong từ cấu hình chúng ta bật WDT thì không thể tắt WDT bằng phần mềm.
Về vấn đề bạn đã gặp, không nhất thiết phải dùng bootloader khác, bạn chỉ cần thêm một lệnh xóa WDT vào vòng lặp chính là được.
Thân,