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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.