|
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 |
|
27-08-2010, 11:42 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 6
: |
Chương trình báo lỗi, ko bit sai ở đâu?
Mình mới vào nghề, viết thử 1 chương trình LED chạy qua lại nhưng khi biên dịch thì gặp lỗi sau:
Debug build of project `D:\Hung\Tai lieu ky thuat\pic\baitap\vd1.mcp' started. Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36 Preprocessor symbol `__DEBUG' is defined. Fri Aug 27 10:05:14 2010 ---------------------------------------------------------------------- Make: The target "D:\Hung\Tai lieu ky thuat\pic\baitap\vd1.o" is out of date. Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F887 "vd1.asm" /l"vd1.lst" /e"vd1.err" /o"vd1.o" /d__DEBUG=1 Error[126] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 4 : Argument out of range (not a valid config register address) Message[302] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 20 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 32 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 40 : Register in operand not in bank 0. Ensure that bank bits are correct. Message[302] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 70 : Register in operand not in bank 0. Ensure that bank bits are correct. Halting build on first failure as requested. ---------------------------------------------------------------------- Debug build of project `D:\Hung\Tai lieu ky thuat\pic\baitap\vd1.mcp' failed. Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36 Preprocessor symbol `__DEBUG' is defined. Fri Aug 27 10:05:15 2010 ---------------------------------------------------------------------- BUILD FAILED Ko biết chương trình sai ở đâu? nhờ các bậc tiền bối chỉ giúp. ^^ Đây là chương trình của mình TITLE "Chay LED <->" PROCESSOR 16f887 #include <p16f887.inc> __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC ;Khai bao bien W_SAVE EQU 0X20 STATUS_SAVE EQU 0X21 LAN_LAP EQU 0X22 XOAY EQU 0X23 ;Chuong trinh ORG 0X0000 GOTO Main ORG 0X0004 GOTO Isr_Tmr1 ORG 0X0005 Main banksel PORTB CLRF PORTB banksel TRISB CLRF TRISB banksel T1CON BCF T1CON,TMR1CS BCF T1CON,T1CKPS0 BCF T1CON,T1CKPS1 MOVLW 0X9E MOVWF TMR1H MOVLW 0X58 MOVWF TMR1L MOVLW D'5' MOVWF LAN_LAP banksel PIE1 BSF PIE1,TMR1IE BSF INTCON,GIE banksel T1CON BSF T1CON,TMR1ON GOTO $ Isr_Tmr1 banksel INTCON BCF INTCON,GIE BCF PIE1,TMR1IE banksel PIR1 BCF PIR1,TMR1IF BCF T1CON,TMR1ON MOVWF W_SAVE MOVF STATUS,W MOVWF STATUS_SAVE MOVLW 0X9E MOVWF TMR1H MOVLW 0X58 MOVWF TMR1L DECFSZ LAN_LAP,1 GOTO Tiep_tuc MOVLW D'5' MOVWF LAN_LAP Ktra_Xoay BTFSS XOAY,0 GOTO Xoay_Phai RLF PORTB,0 Ktra_C BTFSS STATUS,C GOTO Xuat_Led COMF XOAY,1 GOTO Ktra_Xoay Xuat_Led MOVWF PORTB Tiep_tuc MOVF STATUS_SAVE,0 MOVWF STATUS MOVF W_SAVE,0 BSF PIE1,TMR1IE BSF INTCON,GIE BSF T1CON,TMR1ON RETFIE Xoay_Phai RRF PORTB,0 GOTO Ktra_C END Đây là Pr-Scr của Chương trình: http://www.mediafire.com/i/?l36dwzq0d43hcol http://www.mediafire.com/i/?tkhcs718ca5qwdz http://www.mediafire.com/i/?dn6uooea1yi5qn4 thay đổi nội dung bởi: shevry, 27-08-2010 lúc 12:08 PM. Lý do: bổ xung Pr-Scr |
29-08-2010, 05:18 PM | #2 |
Đệ tử 2 túi
Tham gia ngày: May 2005
Bài gửi: 27
: |
báo lỗi khai báo fuse sai kìa bạn, mình cũng không biết sửa sao cho phải, bạn thử thay thế này xem
Code:
INCLUDE <P16F877A.inc> __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC Message[302] D:\HUNG\TAI LIEU KY THUAT\PIC\BAITAP\VD1.ASM 20 : Register in operand not in bank 0. Ensure that bank bits are correct. mình cũng bị dù dùng nhiều cách như dùng banksel, BSF và BCF status,RP0 nhưng báo thì báo mình vẫn dịch ngon và chạy ngon, ko hiểu nổi luôn :-o |
29-08-2010, 09:06 PM | #3 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 6
: |
Trước hết mình xin cám ơn bạn đã xem và suy ngẫm giùm. Nhìn report của nó thì ai ko biết sai dòng nào. ^^ Vấn đề là ở chỗ phải sửa lại như thế nào cho đúng. Hôm nay mới lục lọi trong mấy cái ví dụ của thằng Microchip (nói thiệt ra là dân VN mình biết rồi toàn giấu đem xuống hòm ko hà, ko biết để lại gì cho con cháu cả). Mình sửa lại cái dòng đó như sau:
__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _XT_OSC Biên dịch xong thì hết error nhưng warning thì dùng banksel vẫn bị. ko hiểu. |
30-08-2010, 12:07 AM | #4 |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 17
: |
nếu không phải la chương trình lớn thì wraming không ảnh hưởng gì đâu, nhung bạn cũng hết sức chú ý tới nó đó. bạn làm nhìu sẽ thấy.
|
30-08-2010, 09:17 PM | #5 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 6
: |
Mình thấy lạ là sao đã làm giống như chỉ dẫn của datasheet và các chương trình mẫu nhưng vẫn bị warning. Chẳng lẽ MPLab có vấn đề, thật là khó hiểu quá đi. Lúc trước học 89C51 đâu có bị như thế này, chương trình mẫu dạy sao làm như vậy thì ko bao giờ sai. Có lẽ vì thế mà ở VN có nhiều sách 89 nhưng sách PIC thì chỉ mới có 2 quyển. hic. Chẳng lẽ chuyển qua học avr nhỉ.
|
30-08-2010, 09:34 PM | #6 | |
Trưởng lão PIC bang
|
Trích:
Warning không phải là Error, nên bạn không nên quá bận tâm về nó. Message lại càng không cần lo lắng, vì nó chỉ là một thông báo nhắc nhở bạn (trong chương trình nhỏ của bạn thì chỉ là nhắc nhở rằng cần đảm bảo chọn đúng bank cho các thanh ghi). Các chương trình mẫu được viết cho các PIC chỉ có một từ cấu hình. Đến gần đây thì PIC16F887 (và một số chip tương tự) được Microchip sản xuất với 2 từ cấu hình, dẫn đến cần có một cách viết khác để thiết lập các từ cấu hình cho các PIC loại này. Và điều này cũng khiến một số chương trình mẫu trở nên "không đúng". Các chip 89 thuộc họ MCS-51 đã rất lâu đời, vốn không có những thay đổi lớn như vậy, nên các chương trình mẫu của chúng ít có cơ hội gặp rắc rối như trên. Tôi thường dùng cách cấu hình dưới đây cho PIC16F88x: Code:
__CONFIG _CONFIG1, _HS_OSC & _FCMEN_OFF & _IESO_OFF & _CP_OFF & _WDT_OFF & _BOR_ON & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF __CONFIG _CONFIG2, _WRT_OFF & _BOR21V 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 |
|
|
|