Forum: Mikrocontroller und Digitale Elektronik Keil: Syntaxfrage


von spaenge (Gast)


Lesenswert?

Ich möchte eine in eine a51-Datei eine andere a51-Datei einbinden.

Bei folgendem zeigt er einen Syntaxfehler an:
1
CODE  ;Codesegment. Code wird vom Linker hinter andere Datei gehängt

Wenn ich es weglasse, spinnt alles rum; ist eine Hilfedatei für ein 
Display. Wenn ich die Hilfs-Unterprogramme einfach unten reinkopiere 
(ohne einbinden), läufts. Also muss es wohl daran liegen, dass er den 
Code falsch setzt, o.ä.

Erstellt wurde das ganze mit RideIDE und ich habe jetzt hier µVision3.

Wie mach ich das passend? ;)

lg

von Ralf (Gast)


Lesenswert?

> Ich möchte eine in eine a51-Datei eine andere a51-Datei einbinden.
Macht man auch nicht so (zumindest nicht in Keil).

Du hast links ein sog. Projektfenster. Dort müssen alle relevanten 
Dateien hinzugefügt werden und dadurch dem Projekt zugeordnet, damit der 
Compiler/Linker/Assembler weiss, was denn alles zum Projekt gehört.

Variablen, usw., die in beiden (mehreren) Dateien bekannt sein müssen, 
müssen in einer Datei angelegt, über "public" bekannt, und über "extern" 
drauf verwiesen werden.

Ralf

von spaenge (Gast)


Lesenswert?

Alles klar. Danke schonmal.

Allerdings klappt es nicht mit
1
extern code Unterprogramm
auf das Unterprogramm zu verweisen.

Das Problem mit dem Code von oben besteht übrigens immer noch.

lg

von Ralf (Gast)


Lesenswert?

Na dann eben der Reihe nach :)

Mach einen Screenshot vom Keil-Fenster, und häng die beiden Dateien an 
(oder ein ZIP des gesamten Projekts).

Ralf

von spaenge (Gast)


Angehängte Dateien:

Lesenswert?

So hier nen Screen.

Auf dem Display wird der aktuelle Akku-Inhalt ausgegeben. Die Hilfedatei 
hat jemand gebastelt, funktioniert aber auf jeden Fall (im RideIDE).

Ich hoffe man erkennt was man braucht.

von Ralf (Gast)


Lesenswert?

Okay, ich blicke langsam (aber echt nur langsam) durch...
Du hast ja jede Menge Fehlermeldungen, dann ist ja auch klar, dass es 
nicht tut.
Z.B. Zeile 3, in LCDHILF.A51, CODE allein reicht nicht. Ich nehme an, 
dass du aufs CODE-Segment verweisen willst... Das geht je nach bereits 
vorgenommenen Einstellungen mit RSEG, CSEG usw.

Ich empfehle allgemein:
http://www.keil.com/c51/man/c51.htm
und speziell für diesen Fall:
http://www.keil.com/support/man/docs/a51/
http://www.keil.com/support/man/docs/a51/a51_programming.htm
http://www.keil.com/support/man/docs/a51/a51_controls.htm

Jeweils auf der linken Seite gibts dann das gewünschte Kapitel.

Wie gesagt, komplettes Projekt in ne Zip, und wir gucken weiter...

Ralf

von spaenge (Gast)


Lesenswert?

Werde ich mir mal ansehen.

Das Problem ist nur, dass es mit RideIDE so funktioniert. In der Schule 
benutzen wir Ride, was allerdings bei mir aus irgendeinem Grund nicht 
zum installieren geht. Deshalb musste ich auf Keil umsteigen und hab 
eigentlich nur immer solche Probleme, die auf die verschiedenen Compiler 
zurückzuführen sind (wahrscheinlich).

Danke auf jeden Fall mal. Ich werde mich mal da reinarbeiten.

von Ralf (Gast)


Lesenswert?

Ja, da wird sicherlich ein großer Teil der Probleme an den 
unterschiedlichen Compilern liegen. Wie gesagt, wenn du das Projekt hier 
reinstellst, kann man sich das mal angucken, wo die Fehler liegen...
Ausserdem würde ich dir empfehlen, nachzugucken, warum du Ride nicht 
daheim installieren kannst, sonst bringt es nix, wenn ihr in der Schule 
mit Ride rummacht, und du jedesmal gucken musst, dass du es auf Keil 
portierst...

Übrigens, es gibt noch den SDCC(frei) und den Wickenhäuser Compiler(bis 
8 kB frei), die haben nicht solche Einschränkungen wie der Keil mit 2kB 
Offset usw.

Ralf

von spaenge (Gast)


Lesenswert?

Das Problem mit der Installation von Ride ist, dass immer eine 
Fehlermeldung kommt, dass die Festplatte nicht genug frei ist (ist sie 
aber) oder dass die Datei gerade verwendet wird. Hab schon alles 
mögliche probiert, aber nichts geht.

von Ralf (Gast)


Lesenswert?

Welche Datei? Schon mal probiert, im abgesicherten Modus zu 
installieren?

Ralf

von spaenge (Gast)


Lesenswert?

1
Schon mal probiert, im abgesicherten Modus zu
2
installieren?

Nach langem hin und her habe ich auch das mal probiert und es hat 
geklappt. Keine Ahnung, warum ich das nicht vorher schon gemacht habe, 
normaler Weise ist das die erste Anlaufstelle ;)

Jetzt klappt auf jeden Fall alles. Ich hoffe die Probleme hören jetzt 
erstmal auf.

Auf jeden Fall Danke für Deine Hilfe und Mühen!

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.