![]() |
|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2007
Bài gửi: 1
: |
Lỗi khi dịch MPASM
Xin được giúp đỡ
Hiện tôi đang sử dụng phần mềm MPLAB IDE v7.41 để viết trình điều khiển cho bộ vi sử lý pic16f684. Tôi đã có các trương trình bằng asm ví dụ viết cho bộ sử lý này nhưng trong quá trình dịch phần mềm MPLINK 4.04 báo lỗi: "Error - could not find definition of symbol 'LEDREGISTER' in file 'C:\Documents and Settings\IOIT\My Documents\PICkit1\Lesson 5\Asm\pglookup.o'. Errors : 1" và tôi khong biết làm ra sao bạn có thể zúp tôi được không? (tôi dùng bộ dịch là Microchip MPASM toolsuite). Cám ơn rất nhiều. |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
Tham gia ngày: Nov 2007
Bài gửi: 2
: |
Em là dân mới nên không biết cách gởi bài lên diễn đàn, nên hỏi trong đây mong các Anh thông cảm.
E sử dụng MPASM, khi dich chuong trình nó không chuyển bank. ;test chuyen bank list p=16f877A #include <p16f877A.inc> ORG 0X0 GOTO MAIN ORG 0X5 MAIN CLRF STATUS BSF STATUS,RP0 ;BANKSEL TRISB CLRF TRISB END đáng lẽ khi CLRF TRISB thì nó phải CLRF 0x86 ở bank1 nhưng nó lại LCRF 0x6 ở bank0: 0007 0186 CLRF 0x6 15: CLRF TRISB mong các Anh chi dum. phai khai bao lam sao khi dich bằng Microchip MPASM toolsuite để cho nó chuyển đúng bank. Message[302] E:\PIC\TESTBANK.ASM 15 : Register in operand not in bank 0. Ensure that bank bits are correct |
![]() |
![]() |
![]() |
#4 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Bạn căn cứ vào đâu để nói rằng nó xóa 0x6 ở bank 0? Bạn debug bằng MPLAB SIM vào nhìn thấy như vậy, hay bằng cách nào khác mà bạn thấy như vậy? Theo như đoạn chương trình bạn viết, chắc chắc nó sẽ xóa TRISB ở địa chỉ 0x86. Còn cái message kia chỉ là thông báo cho bạn biết rằng bạn đang thao tác với 1 thanh ghi không phải ở bank 0. Bạn cần chắc chắc đã dựng/xóa các bit chọn bank tương ứng. Tuy nhiên tôi cũng khuyến cáo bạn nên viết thêm lệnh BCF STATUS,RP0 vào trước lệnh END.
__________________
Do more than exist, LIVE |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|