PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

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

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 ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-07-2007, 10:15 PM   #1
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
Red face nó báo lỗi thế này khi dịch

MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - Absolute code section '.org_2' must start at a word-aligned address.
Errors : 1

BUILD FAILED: Sat Jul 21 21:08:03 2007



file ASM thì ko báo lỗi gì ,nhưng khi link thì lỗi như vậy ,mấy anh chỉ giùm ,đang thử sài MPASM .
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-07-2007, 10:31 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhtienbk View Post
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - Absolute code section '.org_2' must start at a word-aligned address.
Errors : 1

BUILD FAILED: Sat Jul 21 21:08:03 2007

file ASM thì ko báo lỗi gì ,nhưng khi link thì lỗi như vậy ,mấy anh chỉ giùm ,đang thử sài MPASM .
Bạn post đoạn code của bạn lên thì mới góp ý được cho bạn chứ. Bạn đang dùng PIC18 phải không?

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-07-2007, 11:46 AM   #3
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
code hơi dài copy của ng khác để thử

Code:
;********************************************************
;
;            The LED flash control processing
;
;                                 Author : Seiichi Inoue
;********************************************************

        list            p=pic18f4550
        include         p18f4550.inc

        errorlevel      -302    ;Eliminate bank warning

;****************  Label Definition  ********************
ra0     equ     00              ;RA0 bit
ra1     equ     01              ;RA1 bit
ra2     equ     02              ;RA2 bit
ra3     equ     03              ;RA3 bit
ra4     equ     04              ;RA4 bit
cnt500u equ     0c              ;500usec counter Address
cnt1m   equ     0d              ;1msec counter Address
cnt100m equ     0e              ;100msec counter Address
cnt500m equ     0f              ;500msec counter Address
cnt1s   equ     10              ;1sec counter Address

;*************  Pattern Data Definition  ****************
;                 '1':OFF   '0':ON

;******  Pattern 0  ******
p00     equ     b'11111110'
p01     equ     b'11111101'
p02     equ     b'11111011'
p03     equ     b'11110111'
p04     equ     b'11101111'
p05     equ     b'11011111'
p06     equ     b'10111111'
p07     equ     b'01111111'

;******  Pattern 1  ******
p10     equ     b'01111111'
p11     equ     b'10111111'
p12     equ     b'11011111'
p13     equ     b'11101111'
p14     equ     b'11110111'
p15     equ     b'11111011'
p16     equ     b'11111101'
p17     equ     b'11111110'

;******  Pattern 2  ******
p20     equ     b'01111110'
p21     equ     b'10111101'
p22     equ     b'11011011'
p23     equ     b'11100111'
p24     equ     b'11011011'
p25     equ     b'10111101'
p26     equ     b'01111110'

;******  Pattern 3  ******
p30     equ     b'11111110'
p31     equ     b'11111101'
p32     equ     b'11111010'
p33     equ     b'11110101'
p34     equ     b'11101010'
p35     equ     b'11010101'
p36     equ     b'10101010'
p37     equ     b'01010101'
p38     equ     b'10101011'
p39     equ     b'01010111'
p3a     equ     b'10101111'
p3b     equ     b'01011111'
p3c     equ     b'10111111'
p3d     equ     b'01111111'

;******  Pattern 4  ******
p40     equ     b'00000000'
p41     equ     b'11111111'
p42     equ     b'00000000'
p43     equ     b'11111111'
p44     equ     b'00000000'
p45     equ     b'11111111'
p46     equ     b'00000000'
p47     equ     b'11111111'
p48     equ     b'00000000'


;****************  Program Start  ***********************
        org     0               ;Reset Vector
        goto    init
        org     4               ;Interrupt Vector
        goto    init

;****************  Initial Process  *********************
        org     5
init    bsf     status,RP0      ;Change to Bank1 
        movlw   h'ff'           ;Set input mode data
        movwf   trisa           ;Set PORTA to Input mode
        clrf    trisb           ;Set PORTB to Output mode
        bcf     status,RP0     ;Change to Bank0
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data

;****************  Key Scan Process  ********************
keyscan btfss   porta,ra0       ;RA0 ON(Low lebel) ?
        call    ptn0            ;Yes. Call Pattern 0
        btfss   porta,ra1       ;RA1 ON ?
        call    ptn1            ;Yes. Call Pattern 1
        btfss   porta,ra2       ;RA2 ON ?
        call    ptn2            ;Yes. Call Pattern 2
        btfss   porta,ra3       ;RA3 ON ?
        call    ptn3            ;Yes. Call Pattern 3
        btfss   porta,ra4       ;RA4 ON ?
        call    ptn4            ;Yes. Call Pattern 4
        goto    keyscan         ;Retry

;***********  Pattern 0 Output Subroutine ***************
ptn0    movlw   p00             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p01             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p02             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p03             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p04             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p05             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p06             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p07             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        return

;***********  Pattern 1 Output Subroutine ***************
ptn1    movlw   p10             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p11             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p12             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p13             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p14             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p15             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p16             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p17             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        return

;***********  Pattern 2 Output Subroutine ***************
ptn2    movlw   p20             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p21             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p22             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p23             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p24             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p25             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p26             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        return

;***********  Pattern 3 Output Subroutine ***************
ptn3    movlw   p30             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p31             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p32             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p33             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p34             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p35             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p36             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p37             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p38             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p39             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p3a             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p3b             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p3c             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   p3d             ;Set pattern data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data
        call    t100m           ;Wait 100msec
        return

;***********  Pattern 4 Output Subroutine ***************
ptn4    movlw   p40             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p41             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p42             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p43             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p44             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p45             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p46             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p47             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   p48             ;Set pattern data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        movlw   h'ff'           ;Set LED off data
        movwf   portb           ;Output data
        call    t1s             ;Wait 1sec
        return

;********************************************************
;          Timer  Subroutine for 10MHz clock
;********************************************************

;*************  1msec Timer Subroutine  *****************
t1m     movlw   d'2'            ;(1)       Set loop cnt1
        movwf   cnt1m           ;(1)       Save loop cnt1
tm1lp1  movlw   d'249'          ;(1)*2     Set loop cnt2
        movwf   cnt500u         ;(1)*2     Save loop cnt2
tm1lp2  nop                     ;(1)*249*2 Time adjust
        nop                     ;(1)*249*2 Time adjust
        decfsz  cnt500u,f       ;(1)*249*2 cnt500u-1=0 ?
        goto    tm1lp2          ;(2)*248*2 No, continue
        decfsz  cnt1m,f         ;(1)*2     cnt1m-1=0 ?
        goto    tm1lp1          ;(2)       No. Continue
        return                  ;(2)       Yes. Cnt end
                                ;Total 2501*0.4usec=1msec

;*************  100msec Timer Subroutine  ***************
t100m   movlw   d'100'          ;Set loop counter
        movwf   cnt100m         ;Save loop counter
tm2lp   call    t1m             ;1msec subroutine
        decfsz  cnt100m,f       ;cnt100m - 1 = 0 ?
        goto    tm2lp           ;No. Continue
        return                  ;Yes. Count end


;*************  500msec Timer Subroutine  ***************
t500m   movlw   d'5'            ;Set loop counter
        movwf   cnt500m         ;Save loop counter
tm3lp   call    t100m           ;100msec subroutine
        decfsz  cnt500m,f       ;cnt500m - 1 = 0 ?
        goto    tm3lp           ;No. Continue
        return                  ;Yes. Count end

;**************  1sec Timer Subroutine  *****************
t1s     movlw   d'2'            ;Set loop counter
        movwf   cnt1s           ;Save loop counter
tm4lp   call    t500m           ;500msec subroutine
        decfsz  cnt1s,f         ;cnt1s - 1 = 0 ?
        goto    tm4lp           ;No. Continue
        return                  ;Yes. Count end


;********************************************************
;          END of LED flash control processing
;********************************************************

        end
em sài 18f4550
project gồm 3 file (đã add vô) : led.asm (file trên) ,p18f4550.inc ,18f4550.lkr
khi dịch thì output như sau :

Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F4550 "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c-
Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "C:\Documents and Settings\miti\Desktop\pic\18F4550.lkr" "C:\Documents and Settings\miti\Desktop\pic\led.o" /o"test2.cof" /M"test2.map"
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - Absolute code section '.org_2' must start at a word-aligned address.
Errors : 1


BUILD FAILED: Sun Jul 22 11:43:42 2007


còn quá trình assembly thì ko có lỗi nào. Anh chỉ giùm
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-07-2007, 05:08 PM   #4
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Code:
org     0               ;Reset Vector
        goto    init
        org     4               ;Interrupt Vector
        goto    init

;****************  Initial Process  *********************
        org     5
Bỏ cái "org 5" đi, opcode của 18F là 16 bit nên ko thể bắt đầu ở địa chỉ lẻ, ở đây bạn ko cần phải có chỉ thị này.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-07-2007, 10:48 AM   #5
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
Trích:
Nguyên văn bởi bien_van_khat View Post
Code:
org     0               ;Reset Vector
        goto    init
        org     4               ;Interrupt Vector
        goto    init

;****************  Initial Process  *********************
        org     5
Bỏ cái "org 5" đi, opcode của 18F là 16 bit nên ko thể bắt đầu ở địa chỉ lẻ, ở đây bạn ko cần phải có chỉ thị này.
nếu sửa lại như vậy thì ra lỗi mới như thế này :

Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F4550 "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c-
Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "C:\Documents and Settings\Minh Tien\Desktop\pic\18F4550.lkr" "C:\Documents and Settings\Minh Tien\Desktop\pic\led.o" /o"test2.cof" /M"test2.map"
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x00000220
Errors : 1

BUILD FAILED: Mon Jul 23 09:41:31 2007


hay anh nào ra tay post giùm em project bất kỳ của 18f ,miễn là dịch ko lỗi để em còn biết dg mò
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-07-2007, 01:40 PM   #6
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Mình đoán bạn copy code của 16F đổi sang 18F, tổ chức bộ nhớ chương trình hai dòng này khác nhau. Với 16F vector 0x04 là vector ngắt, còn 2 vector ngắt của 18F ở 0x08 và 0x18, do đó code thường bắt đầu ở 0x2a.

Bạn thử đoạn code này xem sao.
Code:
	; Include file, change directory if needed
	include "p18f4550.inc"
	config	FOSC=HSPLL_HS, PLLDIV=5, CPUDIV=OSC1_PLL2, WDT=OFF, PWRT=ON, LVP=OFF, MCLRE=ON, PBADEN=OFF

c1	equ	0x01
c2	equ	0x02

	; Start at the reset vector
Reset_Vector  code 0x000
	goto Start

	; Start application beyond vector area

	code	0x002A
Start
	clrf	TRISB, a
loop
	movlw	0xff
	movwf	LATB, a
	call	delay
	clrf	LATB, a
	call	delay
	bra		loop

delay
	movlw	0xff
	movwf	c1, a
loop1
	movlw	0xff
	movwf	c2, a
loop2
	decfsz	c2
	bra		loop2
	
	decfsz	c1
	bra		loop1
	return

	end
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]

thay đổi nội dung bởi: bien_van_khat, 23-07-2007 lúc 02:38 PM.
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-07-2007, 11:09 PM   #7
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
có lẽ anh nói đúng ,hồi trưa ,em đã thử dời đoạn Main sang vị trí mới ,ở 100h thì nó ko có lỗi gì ,ra luôn file HEX
và cái vụ config nó , hình như trc giờ chưa / ít ai trong PIC VN nói về nó ( chỉ nói về 16f ) ,và tập lệnh nữa ,hinh như coi trọng 16f ,bỏ quên 18f

ko hiểu sao ,có khi nó đang chạy thì nó dừng ,(em đã tắt WDT )
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-07-2007, 01:14 AM   #8
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
Trích:
Nguyên văn bởi bien_van_khat View Post
Mình đoán bạn copy code của 16F đổi sang 18F, tổ chức bộ nhớ chương trình hai dòng này khác nhau. Với 16F vector 0x04 là vector ngắt, còn 2 vector ngắt của 18F ở 0x08 và 0x18, do đó code thường bắt đầu ở 0x2a.

Bạn thử đoạn code này xem sao.
Code:
	; Include file, change directory if needed
	include "p18f4550.inc"
	config	FOSC=HSPLL_HS, PLLDIV=5, CPUDIV=OSC1_PLL2, WDT=OFF, PWRT=ON, LVP=OFF, MCLRE=ON, PBADEN=OFF

c1	equ	0x01
c2	equ	0x02

	; Start at the reset vector
Reset_Vector  code 0x000
	goto Start

	; Start application beyond vector area

	code	0x002A
Start
	clrf	TRISB, a
loop
	movlw	0xff
	movwf	LATB, a
	call	delay
	clrf	LATB, a
	call	delay
	bra		loop

delay
	movlw	0xff
	movwf	c1, a
loop1
	movlw	0xff
	movwf	c2, a
loop2
	decfsz	c2
	bra		loop2
	
	decfsz	c1
	bra		loop1
	return

	end


nếu trong đoạn chương trình trên có xài ngắt ,mà ISR lại rất dài ,thì ta viết như thế nào ,có phải thế này ko :

ORG 0
goto main
ORG 0x18
goto ISR

ORG 0x2a
ISR .......
......
retfie

main .....
.....



đúng ko anh ? chỗ này quan trọng vì ko qua nó thì cũng ko có file HEX
chắci ai cũng gặp thế này khi sài 18f
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-07-2007, 01:21 AM   #9
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhtienbk View Post
nếu trong đoạn chương trình trên có xài ngắt ,mà ISR lại rất dài ,thì ta viết như thế nào ,có phải thế này ko :

ORG 0
goto main
ORG 0x18
goto ISR

ORG 0x2a
ISR .......
......
retfie

main .....
.....



đúng ko anh ? chỗ này quan trọng vì ko qua nó thì cũng ko có file HEX
chắci ai cũng gặp thế này khi sài 18f
Bạn viết như vậy là được rồi, nhưng nó chỉ xử lý ngắt có mức ưu tiên thấp (vectơ nằm ở 0x0018), còn ngắt có mức ưu tiên cao (vectơ nằm ở 0x0008) thì không biết sẽ có code gì nằm ở phần vectơ của nó.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2007, 12:21 AM   #10
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
unbanked RAM (0x70-0x7F) là của 16f ,khai báo như sau


unbanked udata_shr
W_s res 1
Temp res 1

anh chỉ cho : khi sửa lại cho 18f thì mình sửa thế nào
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2007, 03:04 AM   #11
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhtienbk View Post
unbanked RAM (0x70-0x7F) là của 16f ,khai báo như sau


unbanked udata_shr
W_s res 1
Temp res 1

anh chỉ cho : khi sửa lại cho 18f thì mình sửa thế nào
Vùng RAM không bị chia thành trang (dữ liệu) (unbanked) trong PIC18 được gọi là Access RAM. Do đó, dẫn hướng udata_acs sẽ được dùng thay cho udata_shr của các chip lõi 14-bit, như ví dụ dưới đây:
Code:
	udata_acs
Var1   res 1
Double res 2
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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-07-2007, 11:19 PM   #12
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
nó báo lỗi những dòng lệnh :

movwf LATB, a

những dòng kết thúc bằng chữ "a"

nó nói a chưa dc định nghĩa ,nhưng cái này đúng cú pháp mà
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2007, 01:14 AM   #13
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhtienbk View Post
nó báo lỗi những dòng lệnh :

movwf LATB, a

những dòng kết thúc bằng chữ "a"

nó nói a chưa dc định nghĩa ,nhưng cái này đúng cú pháp mà
Sửa chữ 'a' thành 'ACCESS' xem.

Về chuyện cấu hình, PIC18F có khá nhiều từ cấu hình, và các cấu hình cũng thay đổi khá nhiều theo họ chip. Thậm chí các cụm bit cùng một ý nghĩa nhưng có nhiều họ đặt tên khác nhau. Do đó, dùng chip nào thì xem chip đó.

Vì lý do các cấu hình cho PIC18 phức tạp mà Microchip đã viết hẳn ra 1 tập tin hướng dẫn cấu hình đi kèm C18 (trong thư mục con 'doc' của thư mục cài đặt C18) và một tập tin khác ở dạng pdf là 'PIC18 Configuration Setting Addendum' (DS51537) có thể download từ trang web của Microchip.

Tập lệnh của PIC18 có thể tham khảo như một phần của tài liệu 'PIC18C Family Reference Manual' (DS39500), có thể download từ trang web của Microchip.

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

thay đổi nội dung bởi: namqn, 24-07-2007 lúc 01:20 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2007, 11:21 AM   #14
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
xóa chữ a đi thì chương trình chạy bt ,chắc nó coi như 16f

cấu hình ,em vô menu chỉnh trực tiếp luôn ,cũng OK

Tập lệnh có trong datasheet ,em mới vừa tìm dc

Cảm ơn anh

Sẵn cho em hỏi luôn ,nếu mã viết cho 16f mà sài cho 18f thì cần lưu ý / sửa những chỗ nào

Em có 1 file ASM <của Microchip >mà nó ko có mậy cái vụ org gì hết ,vậy thì khi dịch và nạp thì sao ,nó cũng xài ngắt
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2007, 02:39 PM   #15
quochung53
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
quochung53 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:55 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