|
Tài trợ cho PIC Vietnam |
Những lỗi nạp và debug thường gặp Nên chú ý box này trước khi đặt câu hỏi |
|
Ðiều Chỉnh | Xếp Bài |
04-06-2015, 09:02 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jun 2015
Bài gửi: 1
: |
giúp em với code e nạp no errors nhưng vào pickit2 lại bị lỗi
em compile ok ko có lỗi nhung khi vào pickit 2 lai xuất hiện dòng chữ
Warmning some configuration words not in hex file ensure default values above right are acceptable |
22-06-2015, 12:28 AM | #2 | |
Đệ tử 3 túi
Tham gia ngày: Mar 2009
Bài gửi: 49
: |
Trích:
Bạn xem kỹ datasheet của vdk, lưu ý đến các thanh ghi configuration, nó quy định các điều kiện làm việc của vdk như chọn nguồn xung, có cho phép WDT không ... và nhiều các chế độ hoạt động khác của VĐK. Các compiler version cũ thì khi build các giá trị thanh ghi này nằm luôn trong file hex do đó khi nạp bằng một tool khác thì không vấn đề gì!! Nhưng ở các Compiler mới thì khi build file Hex thì không chứa thông tin của thanh ghi configuration, chỉ khi nạp trực tiếp từ IDE thì giá trị này sẽ được nạp trước rồi tới chương trình nên không vấn đề gì!! Vấn đề nếu ta đem file Hex này đi nạp bằng một chương trình khác thì sẽ cảnh báo thiếu thông tin Configuration, các chương trình này có sẳn các giá trị default cho thanh ghi configuration và lúc nạp xuống sẽ nạp giá trị default này. Việc này dẫn đến: - Nếu tần số thạch anh default không khớp với tần số bạn code thì chương trình chạy sai. - Nếu loại xung default là xung ngoài mà code bạn chọn thạch anh nội thì chương trình không chạy. và tùy các chương trình flash mà giá trị defaul này khác nhau, có thể là set cố định, có thể lưu lại từ lần nạp trước đó, nên một số bạn hay gặp tình trạng cũng code đó nạp lúc chạy lúc không. |
|
22-06-2015, 12:36 AM | #3 | |
Đệ tử 3 túi
Tham gia ngày: Mar 2009
Bài gửi: 49
: |
Trích:
Bạn xem kỹ datasheet của vdk, lưu ý đến các thanh ghi configuration, nó quy định các điều kiện làm việc của vdk như chọn nguồn xung, có cho phép WDT không ... và nhiều các chế độ hoạt động khác của VĐK. Các compiler version cũ thì khi build các giá trị thanh ghi này nằm luôn trong file hex do đó khi nạp bằng một tool khác thì không vấn đề gì!! Nhưng ở các Compiler mới thì khi build file Hex thì không chứa thông tin của thanh ghi configuration, chỉ khi nạp trực tiếp từ IDE thì giá trị này sẽ được nạp trước rồi tới chương trình nên không vấn đề gì!! Vấn đề nếu ta đem file Hex này đi nạp bằng một chương trình khác thì sẽ cảnh báo thiếu thông tin Configuration, các chương trình này có sẳn các giá trị default cho thanh ghi configuration và lúc nạp xuống sẽ nạp giá trị default này. Việc này dẫn đến: - Nếu tần số thạch anh default không khớp với tần số bạn code thì chương trình chạy sai. - Nếu loại xung default là xung ngoài mà code bạn chọn thạch anh nội thì chương trình không chạy. và tùy các chương trình flash mà giá trị defaul này khác nhau, có thể là set cố định, có thể lưu lại từ lần nạp trước đó, nên một số bạn hay gặp tình trạng cũng code đó nạp lúc chạy lúc không. |
|
02-10-2015, 03:13 PM | #4 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 5
: |
Cái này hầu hết những người mới học đều mắc phải. Cách khắc phục: Bạn dùng PIC16F887 sẽ có 02 thanh ghi connfiguration, hãy config hết 2 thanh ghi này trong chương trình mình viết, bằng #FUSES hoặc bằng -CONFIG_ với ASM. Ví dụ:
__CONFIG _CONFIG1, _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF &_BOR_OFF & _IESO_ON & _FCMEN_ON & _LVP_OFF __CONFIG _CONFIG2, _BOR40V & _WRT_OFF Những lỗi này sẽ không được phát hiện khi sử dụng mô phỏng proteus, nhưng mạch thực tế sẽ báo lỗi. |
|
|