PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 03-07-2005, 12:10 AM   #1
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
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!
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-07-2005, 12:40 AM   #2
zero2one
Đệ 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ỉ ?
zero2one vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-07-2005, 12:40 AM   #3
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
[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:
Nguyên văn bởi tinhthanthep
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
Bạn không đưa cho tôi file bạn viết bằng MPLAB, post lên đây rất khó xem, các phần tôi hướng dẫn về viết các đoạn mã ban đầu cũng không giống của tôi làm, tôi cũng không hiểu mạch bạn làm thế nào.

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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-07-2005, 07:23 PM   #4
tinhthanthep
Đệ tử 6 túi
 
tinhthanthep's Avatar
 
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!
File Kèm Theo
File Type: txt Tut2.txt (773 Bytes, 21 lần tải)
tinhthanthep vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2005, 12:06 AM   #5
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2005, 12:08 AM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2005, 12:13 AM   #7
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:49 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam