PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit der AT-Mega 128 Port Programmierung



modtronic
27.01.2016, 17:37
Hallo

Ich habe folgendes Problem.

Ich nutze zum ersten Mal einen AT-Mega 128
ich benutze Codevision

Ich nehme für ein Programm immer erst den Codewizard um alle Ports zu definieren

ich schreibe immer
#define out1 PORTF.0 //Text
uss für alle ein oder Ausgänge

Wenn ich jetzt out1 z.b Aufrufen will kommt ein Fehler das ich erst eine Structur bzw. eine Union anlegen soll
wer kann mir hier helfen
PORTF könnte ich noch direkt adressieren aber PORTG macht das gleiche Problem und hier brauch ich die einzelne Bits

Danke für eure Hilfe

Gruss
Patrick

Holomino
27.01.2016, 20:26
Hast Du den Kommentar hinter dem #define, wie oben gezeigt, in der gleichen Zeile?

Was ist denn das "uss"?

modtronic
27.01.2016, 22:26
hallo

das uss..soll heissen..dass ich das für alle ausgänge so mache
und der text wird über zwei schrägstriche ausgeklammert..auch das mache ich immer so
bis port E kann ich auch ganz normal so arbeiten

PORT F und PORT G meckert er rum

Gruss
PATRICK

oberallgeier
28.01.2016, 09:00
.. der text wird über zwei schrägstriche ausgeklammert ..Wenn ich mich recht erinnere, gibt es Compiler, die beim #define die ganze Zeile nehmen (können) - inklusive Kommentar. Ich schreibe deshalb üblicherweise das #define "nackt" in eine und den zugehörigen Kommentar in eine zweite (meist davor).

modtronic
28.01.2016, 10:04
Wenn ich mich recht erinnere, gibt es Compiler, die beim #define die ganze Zeile nehmen (können) - inklusive Kommentar. Ich schreibe deshalb üblicherweise das #define "nackt" in eine und den zugehörigen Kommentar in eine zweite (meist davor).

Moin
Auch das habe ich versucht.

Ich kann zb. PORTG = 34 achreiben das nimmt er..
Sobald ich PORTG.0 schreiben kommt halt das ich eine structur/union anlegen soll.
ich kann leider damit nichts anfangen..ich nutze Codevision V1..ich weiss das ein Kollege mal einen 128er programmiert hat er ist aber nicht mehr greifbar und ich kann ihn nicht fragen.

Ich habe die Ports jetzt anders beschaltet nutze ich halt als ganzes Byte

Gruss
Patrick

Holomino
28.01.2016, 10:57
Hmmm, ich muss zugeben, ich habe noch nie mit Codevision gearbeitet.
die Definition "PORTG.0" sollte aber ja auch nur irgendeine Definition aus einer Header-Datei sein.
Kann es also sein, dass Dir ein Include fehlt oder Du das Projekt noch auf einen anderen Prozessor geschaltet hast?

modtronic
28.01.2016, 11:36
Hmmm, ich muss zugeben, ich habe noch nie mit Codevision gearbeitet.
die Definition "PORTG.0" sollte aber ja auch nur irgendeine Definition aus einer Header-Datei sein.
Kann es also sein, dass Dir ein Include fehlt oder Du das Projekt noch auf einen anderen Prozessor geschaltet hast?

Hallo

Ich kann bis PORT E alles normal nutzen. Das heissr 40 I/O Pins kann ich über Define zuweisen.
PORT F und G kann ich zwar auch über define zuweisen sobald ich dann aber diese im Programm nutzen will geht es nicht.
Auch eine direkte zuweisung ohne define geht nicht.

Das ein 'include fehlt dachte ich auch schon..aber leider weiss ich nicht welce und ob überhaupt.
Woher bekommt man denn solche include dateien??

niemand hier der auch so ein problem schonmal hatte ?

Gruss
Pat

- - - Aktualisiert - - -


oder Du das Projekt noch auf einen anderen Prozessor geschaltet hast?

bei codevision wähle ich den at mega 128 an und kann ja dort alles enstellen.
ports timer interreupt..bisher hatte ich auch noch nie probleme.
wie gesagt ich brauche nur diesen einen 128er..habe es jetzt damit ich weiterkomme mit dem projekt halt anders angeschlossen