Halli hallo an Alle, ich bin seit kurzem von einem Atmega16 auf einen Atmega 128 umgestiegen, aufgrund des größeren internen EEProms. Ich habe beim ATmega16 hauptsächlich die I/O-Ports ganz normal genutzt. Jetzt wollte ich mein Programm umschreiben, aber es scheint nicht zu funktionieren. Kann es sein das man irgendetwas Besonderes beachten muss, wenn man die I/O-Ports als Ausgänge benutzen will?... Vielen Dank für Eure Infos... Ciao Thomas
Kristallkugel ist leider (mal wieder) in Reperatur... du musst schon genauer werden. Programmierst du mit C oder ASM? Was bedeutet "scheint nicht zu funktionieren"?
Hi Christof, ich bin mit Absicht nicht genauer geworden, denn wenn ich jetzt alles erklären würde, könnte ich hier ne 50seitige Ausführung schreiben. Ich programmiere in C. Und ich wollte nur wissen ob man da was beachten muss. Ich meine so funktionieren die Ports schon alle. Wahrscheinlich nur nicht immer richtig...??? Ahoi Thomas
Hi Thomas, schau mal im M128 Manual unter "ATmega103 Compatibility Mode". Der ist per Default EIN-geschaltet und bringt einige Besonderheiten z.B.: "Port G serves alternate functions only (not a general I/O port)" hth Gunter
HI Gunther, vielen Dank...diesen Modus habe ich schon ausgeschalten... versuche heute im Laufe des Tages nochmal meinen Fehler zu finden... Danke Euch Ciao Thomas
hi !! vieleicht bei oberen io ports nicht sts fuer out genommen? hat mich gut nerven gekostet ;-}
Hi Jürgen, klingt interessant...was genau meinst Du damit? Was ist denn sts und ab welchen Ports? Vielleicht könntest Du mir etwas schnell antworten...wäre wichtig...falls es mein Problem lößt. Danke Thomas
Gegenüber dem mega16 liegen beim mega128 einige I/O-Register und Ports nicht mehr im standard I/O Bereich 0x00-0x3F sondern im SRAM Bereich 0x60-0x100. Ebenso sind daher bei einigen Peripherie-Registern keine direkten Bit-Manipulationen mehr möglich. Ältere C-Compiler hat da bei der Code-Generierung ihre Probleme, ist aber bei den aktuellen Versionen bei allen behoben. Wenn du in ASM kodierst sind natürlich die Änderungen "zu Fuß" erforderlich, oder du ersetzt die kritischen Befehle durch entsprechende prozessorunabhängige Macros.
Hi Jürgen, vielen Dank für Deine schnelle Antwort... ich benutze WinAVR...in der neusten Version. Ich hoffe da wird soweit alles von selbst erledigt. Gestern habe ich auch alle Signale nochmal mit dem Oszi genau nachgemessen und wenn ich mich nicht getäuscht habe,sind diese identisch mit denen vom ATmega16...und trotzdem funktioniert die Applikation nicht :-(. Den Mega 16 habe ich auf dem STK500. Den Atmega128 auf eine eigene Platine gebaut.Gibt es vielleicht da noch eine Fehlermöglichkeit, dass auf dem STK500 die Ports mit externen Pull Ups oder so versehen sind....oder irgendsowas? Versteh es selbst nicht, finde keinen richtigen Unterschied. Verwende hauptsächlich erstmal die Ports A-D... Danke Thomas
Alle Vcc GND AVcc AGND Anschlüsse korrekt angeschlossen und Abblock C`s verwendet?
hallo Thomas! die antworten kammen ja von mr. merten, aber wenn du nur die unteren ports benutzt scheint es ja vieleicht wirklich ein hardware problem zu sein. ich muss ja puenklich feierabend machen ;-} koennte dir das helfen ?? http://www.ethernut.de/en/download.html ------ enut130f.zip eagle light gibts umsonst bei cadsoft!!! viel glueck juergen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.