|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
|
03-07-2005, 12:10 AM | #1 |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
Hỏi về lỗi ?
Em mới bắt đầu nghiên cứu về PIC theo các tài liệu hướng dẫn của bác Falleaf. Khi làm bài tập nhấp nháy đèn led: em viết bằng MPLAP IDE v7.01:
;Tutorial 1-6 list p=16F628A #include <p16F628A.inc> __CONFIG 0x3D18 cblock 0x20 count1 counta countb endc LEDPORT equ PORTB LEDTRIS equ TRISB ORG 0x0000 movlw 0x07 movwf CMCON bsf STATUS, RP0 movlw b'00000000' movlw LEDTRIS bcf STATUS, RP0 clrf LEDPORT loop movlw b'10000000' movwf LEDPORT call delay movlw b'01000000' movwf LEDPORT call delay movlw b'00100000' movwf LEDPORT call delay movlw b'00010000' movwf LEDPORT call delay movlw b'00001000' movwf LEDPORT call delay movlw b'00000100' movwf LEDPORT call delay movlw b'00000010' movwf LEDPORT call delay movlw b'00000001' movwf LEDPORT call delay movlw b'00000010' movwf LEDPORT call delay movlw b'00000100' movwf LEDPORT call delay movlw b'00001000' movwf LEDPORT call delay movlw b'00010000' movwf LEDPORT call delay movlw b'00100000' movwf LEDPORT call delay movlw b'01000000' movwf LEDPORT call delay goto loop delay movlw d'250' movwf count1 d1 movlw 0xC7 movwf counta movlw 0x01 movwf countb delay_0 decfsz counta, f goto $+2 decfsz countb, f goto delay_0 decfsz count1, f goto d1 retlw 0x00 END Sau đó em dịch sang file hex nhưng nó toàn báo lỗi: Clean: Deleting intermediary and output files. Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\f628Atempo .o". Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\f628Atempo.ERR ". Clean: Deleted file "f628Atempo.lst". Clean: Deleted file "Tutorial16.cof". Clean: Deleted file "Tutorial16.cod". Clean: Deleted file "Tutorial16.hex". Clean: Deleted file "Tutorial16.lst". Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\Tutorial16.mcs ". Clean: Done. Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "f628Atempo.asm" /l"f628Atempo.lst" /e"f628Atempo.err" /o"f628Atempo.o" Warning[207] C:\VIXYLY\PIC\TUTORIALS\TUTORIAL16\F628ATEMPO.ASM 13 : Found label after column 1. (LEDPORT) Warning[207] C:\VIXYLY\PIC\TUTORIALS\TUTORIAL16\F628ATEMPO.ASM 14 : Found label after column 1. (LEDTRIS) Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "16f628a.lkr" "C:\ViXyLy\PIC\Tutorials\Tutorial16\f628Atempo .o" /o"Tutorial16.cof" MPLINK 3.90.01, Linker Copyright (c) 2005 Microchip Technology Inc. Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x0000007e Errors : 1 BUILD FAILED: Sat Jul 02 09:56:55 2005 Các bác có thể giúp em giải quyết được vấn đề này không ạ? Xin đa tạ các bác! |
03-07-2005, 12:40 AM | #2 |
Đệ tử 1 túi
Tham gia ngày: Jun 2005
Bài gửi: 19
: |
mình đã dịch lại tutorial 1.6 của Nigel rồi, nhưng thấy có lỗi gì đâu nhỉ ?
|
03-07-2005, 12:40 AM | #3 | |
PIC Bang chủ
|
[QUOTE=tinhthanthep] Sau đó em dịch sang file hex nhưng nó toàn báo lỗi:
Clean: Deleting intermediary and output files. Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\f628Atempo .o". Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\f628Atempo.ERR ". Clean: Deleted file "f628Atempo.lst". Clean: Deleted file "Tutorial16.cof". Clean: Deleted file "Tutorial16.cod". Clean: Deleted file "Tutorial16.hex". Clean: Deleted file "Tutorial16.lst". Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial16\Tutorial16.mcs ". Clean: Done. [\quote] Đoạn này chẳng có gì để xem, nó chỉ báo rằng nó dịch như vậy. Và đã làm xong. Trích:
Tuy nhiên, theo báo lỗi, do bạn không viết theo các cột như trong bài hướng dẫn của tôi đã viết. Nó báo lỗi là bạn có viết một cái nhãn không nằm ở cột thứ nhất. Nhìn trên này tôi không thể phân biệt được cột nào với cột nào. Đó là lý do vì sao tôi nhắc các bạn gửi kèm file ASM đi theo, khi cần thiết có thể phát hiện các lỗi kiểu này. Đây là điều rất cần cho các hướng dẫn ban đầu. Sau này các bạn sẽ không còn thắc mắc những lỗi nhỏ này nữa. Bạn nhớ gửi kèm file theo, và trong file viết các mô tả phần cứng cũng như các mô tả như tôi hướng dẫn. Nếu cần kiểm tra, tôi chỉ cần đưa vào MPLAB dịch một cái, xem các lỗi đó như thế nào, chứ bạn viết lên thế này, rất mất thời gian cho tôi, và vì vậy, tôi sẽ rất lười trả lời các bài thế này. Điều này cũng tương tự cho các thành viên đã rành về PIC khác, họ cũng rất muốn giúp các bạn, nhưng các bạn toàn làm khó họ. Tôi nghĩ rằng, những thành viên làm việc với PIC đã lâu, cũng đang theo dõi những bài viết ở đây, nhưng họ thấy chưa cần lên tiếng, vì tôi đang bắt đầu từ những bài học cơ bản, vì vậy, khi các bạn hỏi, xin đừng hỏi riêng tôi, mà hỏi tất cả mọi người. Công việc của tôi là tổng hợp các bài viết của các bạn để viết tutorial. Ngoài ra, tôi sẽ cố gắng trả lời các câu hỏi của các bạn trong phạm vi thời gian cho phép của tôi, vì rằng không thể trả lời hết cho tất cả mọi người, vừa email, vừa forum. Đợt vừa rồi tôi hơi bị quá tải. Mong các bạn thông cảm, sức người có hạn. Kể từ nay, tôi sẽ không trả lời các câu hỏi trên email nữa, chỉ trả lời các câu hỏi trên diễn đàn. Cuối cùng, tôi mong các bạn đã rành về PIC giúp tôi một tay, vì vấn đề cơ bản tưởng là đơn giản nhưng không đơn giản chút nào. Mong các bạn giúp tôi sửa chữa những bài viết của tôi nếu thấy có điểm không ổn. Tôi sẽ bắt đầu làm việc lại vào ngày 20/7, tôi cần thời gian nghỉ ngơi khá lâu, vì tôi đã không được nghỉ lâu rồi.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
07-07-2005, 07:23 PM | #4 |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
Tôi gửi kèm file viết bằng MPLAP vào đây nhờ bác falleaf giải quyết giúp. Sau khi dịch file này sang đuôi hex thì nó thông báo như sau:
Clean: Deleting intermediary and output files. Clean Warning: File "C:\PICTut\Tutorial12\f628Atempo.o" doesn't exist. Clean Warning: File "C:\PICTut\Tutorial12\f628Atempo.ERR" doesn't exist. Clean: Deleted file "f628Atempo.lst". Clean: Deleted file "Tutorial12.cof". Clean: Deleted file "Tutorial12.cod". Clean: Deleted file "Tutorial12.hex". Clean: Deleted file "Tutorial12.lst". Clean: Deleted file "C:\ViXyLy\PIC\Tutorials\Tutorial12\Tutorial12.mcs ". Clean: Done. Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "f628Atempo.asm" /l"f628Atempo.lst" /e"f628Atempo.err" /o"f628Atempo.o" Message[302] C:\VIXYLY\PIC\TUTORIALS\TUTORIAL12\F628ATEMPO.ASM 24 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] C:\VIXYLY\PIC\TUTORIALS\TUTORIAL12\F628ATEMPO.ASM 25 : Register in operand not in bank 0. Ensure that bank bits are correct.Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "16f628a.lkr" "C:\ViXyLy\PIC\Tutorials\Tutorial12\f628Atempo .o" /o"Tutorial12.cof" MPLINK 3.90.01, Linker Copyright (c) 2005 Microchip Technology Inc. Errors : 0 MP2COD 3.90.01, COFF to COD File Converter Copyright (c) 2005 Microchip Technology Inc. Errors : 0 MP2HEX 3.90.01, COFF to HEX File Converter Copyright (c) 2005 Microchip Technology Inc. Errors : 0 Loaded C:\ViXyLy\PIC\Tutorials\Tutorial12\Tutorial12.cof BUILD SUCCEEDED: Mon Jan 01 00:51:31 2001 Nhưng các bác để ý thấy rằng tuy là đã Build Succeeded nhưng vẫn có 2 Message (phần gạch chân), như vậy tức là chương trình vẫn còn một vấn đề gì đó? Tôi vẫn cứ thử dùng ICPROG nạp chương trình vào PIC6F628A, cuối cùng của việc nạp hiện ra thông báo: Verify failed at address 0000h. Sau đó tui cắm vào mạch LED của tui nhưng chẳng thấy LED nào sáng cả. Mong các bác giúp tôi giải quyết vấn đề này? Thank các bác rất nhiều! |
08-07-2005, 12:06 AM | #5 |
PIC Bang chủ
|
messages chỉ là các thông báo, không phải là các lỗi, vì nó không nằm trong lỗi mà chương trình dịch có thể phát hiện chắc chắn, cho nên nó thông báo để nhắc nhở người viết kiểm tra lại.
Lỗi đó là các thanh ghi ở dòng đó, không phải nằm trong bank 0, cho nên bạn phải kiểm tra lại trong chương trình, trước khi truy nhập vào các file đó, bạn đã chuyển bank chưa. Thông báo này rất bình thường, khi bạn tương tác với thanh ghi TRIS chẳng hạn, hoặc bất kỳ thanh ghi nào nằm ngoài bank 0, dòng thông báo này sẽ xuất hiện.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
08-07-2005, 12:08 AM | #6 |
PIC Bang chủ
|
Bạn thấy rõ ràng, trong chương trình bạn gửi lên, có thêm dòng TRISA, cho nên có 2 thông báo ở hai dòng liên tiếp TRISA và TRISB tôi nghĩ trong chương trình của bạn nó là dòng 24, 25.
Chỉ đơn giản như vậy thôi. Nhớ rằng, trình dịch chỉ kiểm tra được lỗi cú pháp (syntax) chứ không kiểm tra được lỗi thuật toán. Chúc vui.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
08-07-2005, 12:13 AM | #7 |
PIC Bang chủ
|
Trong phần hướng dẫn về debug chương trình và sửa lỗi, tôi sẽ cố gắng hướng dẫn kỹ hơn các phần này. Thời gian này tôi rất bận, cho nên mong các bạn thông cảm, sẽ không có nhiều bài viết mới.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
|