26-07-2007, 01:14 AM
|
#8
|
Đệ tử 5 túi
Tham gia ngày: Dec 2005
Bài gửi: 120
:
|
Trích:
Nguyên văn bởi bien_van_khat
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 đủ.
|
|
|