Wer sagt denn, dass er das im relocatable mode übersetzt?
Ich würde eher behaupten, dass der Fehler daran liegt, weil das #include
<lcd.asm> am Anfang von der Hauptroutine sthet. Include fügt doch den
Code aus der angegeben Datei genau an der Stelle ein, wo das Include
steht. Auch macht das #include <p16f884.inc> in der lcd.asm aus meiner
Sicht keinen Sinn. Das wäre ja dann ein rekursiver Aufruf. Ich würde es
so machen:
1 | #include <p16f884.inc>
|
2 |
|
3 | ; config FOSC = INTIO67
|
4 | ; config WDTEN = OFF, LVP = OFF, MCLRE = OFF
|
5 |
|
6 | org 1
|
7 | GOTO init
|
8 |
|
9 | ;-------Initialisierung-------
|
10 |
|
11 | init: CALL lcd
|
12 |
|
13 | start: NOP
|
14 | GOTO start
|
15 |
|
16 |
|
17 | #include <lcd.asm>
|
18 |
|
19 | END
|
Funktioniert zumindest bei meinen Programmen bisher immer.
Die lcd.asm würde dann so aussehen: