frank85
07.07.2007, 01:24
Hallo zusammen.
Wollte gerne mal wissen wieso folgender code ohne "goto main" nicht funktioniert. Oder mit goto main und ab org 0x030 funktioniert. Warum bringt mir MPLAB diese Fehlermeldung:
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x0000004e
Errors : 1
Übrigens ich benutze einen PIC18f8520 und ein fertiges board dazu. Das Lauflicht funktioniert jedenfalls. Aber wie gesagt mit den oben beschriebenen Bedingungen. Im Datenblatt und Google läßt sich nichts sinnvolles finden.
list p=18f8520 ;der Prozessortyp wird festgelegt
include "p18f8520.inc" ;die include-Datei mit vielen Festlegungen wird geladen
;z.B. sind hier Standardnamen für wichtige
;Register und Bits festgelegt
;Configuration bits
CONFIG OSC = HS ; HS 20 MHz
CONFIG PWRT = ON ; power up timer on
CONFIG BOR = OFF ; brown out detect off
CONFIG WDT = Off ; watchdog off
CONFIG LVP = OFF ; lvp off
;Variable definitions
CBLOCK 0x0
loops
loops2
ENDC
;************************************************* *****************************
;Reset vector
; hier beginnt der Prozessor beim Reset
org 0x0000
clrf TRISB ; alle Ports outputs
clrf PORTB ; alle LEDs ausschalten
; 1. LED einschalten
bsf PORTB,0 ; LED an RB0 einschalten
; Lauflicht
Loop
call Wait ; Wartezeit
rlncf PORTB,1
BTFSS PORTB,7 ; laufen zur nächsten LED
goto Loop
Loop2
call Wait
rrncf PORTB,f
BTFSS PORTB,0
goto Loop2
goto Loop
;************************************************* *****************************
; Warteschleife 250 ms
; 20 MHZ
; 20 Zyklen pro loop
; 249 loops
Wait
movlw D'1000' ; 250 ms Pause
movwf loops
Wai
movlw .249 ; Zeitkonstante für 1ms
movwf loops2
Wai2 nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz loops2, F ; 1 ms vorbei?
goto Wai2 ; nein, noch nicht
;
decfsz loops, F ; 250 ms vorbei?
goto Wai ; nein, noch nicht
retlw 0 ; das Warten hat ein Ende
;************************************************* *****************************
;End of program
END
Jetzt schon vielen Dank für Eure hilfe.
Gruß frank
Wollte gerne mal wissen wieso folgender code ohne "goto main" nicht funktioniert. Oder mit goto main und ab org 0x030 funktioniert. Warum bringt mir MPLAB diese Fehlermeldung:
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x0000004e
Errors : 1
Übrigens ich benutze einen PIC18f8520 und ein fertiges board dazu. Das Lauflicht funktioniert jedenfalls. Aber wie gesagt mit den oben beschriebenen Bedingungen. Im Datenblatt und Google läßt sich nichts sinnvolles finden.
list p=18f8520 ;der Prozessortyp wird festgelegt
include "p18f8520.inc" ;die include-Datei mit vielen Festlegungen wird geladen
;z.B. sind hier Standardnamen für wichtige
;Register und Bits festgelegt
;Configuration bits
CONFIG OSC = HS ; HS 20 MHz
CONFIG PWRT = ON ; power up timer on
CONFIG BOR = OFF ; brown out detect off
CONFIG WDT = Off ; watchdog off
CONFIG LVP = OFF ; lvp off
;Variable definitions
CBLOCK 0x0
loops
loops2
ENDC
;************************************************* *****************************
;Reset vector
; hier beginnt der Prozessor beim Reset
org 0x0000
clrf TRISB ; alle Ports outputs
clrf PORTB ; alle LEDs ausschalten
; 1. LED einschalten
bsf PORTB,0 ; LED an RB0 einschalten
; Lauflicht
Loop
call Wait ; Wartezeit
rlncf PORTB,1
BTFSS PORTB,7 ; laufen zur nächsten LED
goto Loop
Loop2
call Wait
rrncf PORTB,f
BTFSS PORTB,0
goto Loop2
goto Loop
;************************************************* *****************************
; Warteschleife 250 ms
; 20 MHZ
; 20 Zyklen pro loop
; 249 loops
Wait
movlw D'1000' ; 250 ms Pause
movwf loops
Wai
movlw .249 ; Zeitkonstante für 1ms
movwf loops2
Wai2 nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz loops2, F ; 1 ms vorbei?
goto Wai2 ; nein, noch nicht
;
decfsz loops, F ; 250 ms vorbei?
goto Wai ; nein, noch nicht
retlw 0 ; das Warten hat ein Ende
;************************************************* *****************************
;End of program
END
Jetzt schon vielen Dank für Eure hilfe.
Gruß frank