Hallo Forum,
Ich habe ein Problem mit meinem PIC18F26K20: Bis jetzt habe ich mit dem
C18-Compiler gearbeitet. Dadurch, dass ich aber auf MPLAB X umgestiegen
bin, steige ich auch gleich auf den XC8-Compiler um. Nun habe ich alles
angepasst, nur eine Assembler-Anweisung will sich nicht anpassen lassen.
Unter dem C18-Compiler war dieses Konstrukt kein Problem:
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
8
make[1]: *** [.build-conf] Error 2
9
make: *** [.build-impl] Error 2
10
11
BUILD FAILED (exit value 2, total time: 20s)
Lasse ich jedoch die Zeile
1
bz-4
weg, dann kompiliert er einwandfrei. Jedoch ist die gewünschte Funktion
dann nicht erfüllt.
Was kann an dem "branch if zero" nicht stimmen, und warum nur beim XC8??
Kann mir da wer weiterhelfen?
Danke!!
mfg
Andy
Hallo
wenn ich das richtig sehe ist das nicht die komplette Ausgabe der
Meldungen. Gib mal den kompletten Inhalt des Output-Fensters nach einem
Clean and Build preis. Ich glaube deine erste Zeile (exit status = 1)
deutet darauf hin das da schon was nicht mehr stimmt.
Silvio
Also der Compiler scheint keine Probleme zu haben, da sonst gar nicht
folgende Zeilen erscheinen:
Microchip MPLAB XC8 C Compiler (PRO Mode) V1.33
Part Support Version: 1.33 (A)
Copyright (C) 2014 Microchip Technology Inc.
License type: Node Configuration
Wenns dann weiter gehen soll zum Linker kommt folgende Meldung:
nbproject/Makefile-default.mk:119: recipe for target
'dist/default/production/Test.X.production.hex' failed
Diese scheint das Problem zu zeigen.
Mach mal ein "Clean & Build" ohne "bz = -4".
Dann schau in das Verzeichnis ...\Test.X\dist\default\production. Dort
sollte die datei "Test.X.production.hex" zu finden sein.
Nun "bz = -4" wieder rein und nach ein paar Minuten (um Änderungen an
der Erstellzeit der Datei zu erkennen) über "Run/Build Project" (kein
Clean and Build!) nen neuen Versuch starten. Wenn jetzt die *.hex-Datei
erneuert wird (erkennbar an der Uhrzeit) sollte der Compiler erfolgreich
sein. Auch mal die anderen Dateien in diesem Ordner beobachten welche
erneuert werden.
Hallo,
Eine Frage hätte ich noch:
beim C18-Compiler war folgende Anweisung kein Problem:
1
clrf0x0,0
Der XC8-Compiler meckert hier (Syntax error). Lasse ich ", 0" weg, dann
funktionierts. (mit 0 oder 1 wählt man die ACCESS-Bank bzw. die
GPR-Bank).
Weiß jemand, warum der XC8 diese Angaben nicht mag??
Danke!
mfg
Steht alles im "MPLAB_XC8_C_Compiler_User_Guide.pdf"
Zitat:
The assembler also uses the destination select operand “,b” to indicate
that PIC18
instructions should use the bank select register (BSR) when accessing
the specified
file register address. The “,c” operand indicates that the address is in
the common
memory, which is known as the access bank on PIC18 devices.
Alternatively, an oper-
and can be preceded by the characters “c:” to indicate that the address
resides in com-
mon memory. These operands and prefix affect the RAM access bit in the
instruction.
Mag sein, dass es nicht geht. Deine Antwort läßt aber darauf schließen,
dass du es nicht probiert hast.
Eben nicht 0 oder 1, sondern b oder c.
ww1.microchip.com/downloads/en/DeviceDoc/50002053E.pdf
Kapitel 6.2.1.1
Das wars...
Danke Jungs... Hab das falsch verstanden. Ich dachte b und c wären
Platzhalter. Danke Chris für den Auszug aus dem Datasheet und danke
Steffen für den Hinweis. Es funktioniert nun einwandfrei!!
Danke!!
mfg
Andy