Forum: Mikrocontroller und Digitale Elektronik Komptbl-modus für Atmega103 beim 128er bei WinAVR aus? Wie?


von Dirk K (Gast)


Lesenswert?

Hallole !,..

Ich simuliere mit WinAVR den Atmega128. Die Ports DDTF und DDTG lassen
sich allerdings nicht ansprechen. Es hagelt sofort Fehlermeldungen beim
kompilieren, wenn ich auch nur den Begriff "portf" oder "portg" im
Quelltext benutze. Habe gelesen, das der Atmega128 einen
"Kompatibilitätsmodus" ( als Standardeinstellung ) zum Atmega103
besitzt. Kann es sein das man dem Compiler oder dem WinAVR erst
mitteilen muss das "er" einen "echten" 128er und keinen emulierten
103er vor sich hat ? vielleicht Fusebits setzen ? Kann man die auch
über eine Zeile im Quelltext setzen ? Benutzt wird seltsamerweise
"m128def.inc" in meinem Quelltext,.. allerdings bleiben "portg" und
"portf" trotzdem "gesperrt". Kann man hier in WinAVR eventuell
"anpassen" ??? ....

Hat hier jemand vielleicht einen kleinen Tip für mich ?


 Liebe Grüße,
              Dirk

von Dirk K. (Gast)


Lesenswert?

Sorry hab´ mich verschrieben ,..

 Nicht WinAVR ist gemeint sondern AVR STUDIO 4 ,....

von Christof Krüger (Gast)


Lesenswert?

Was gibt es denn für Fehlermeldungen?

von Dirk K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Christof,


Hab´ Dir ein Bild eingefügt, das die Simulation im "laufenden" AVR
Studio zeigt,.... ( vielleicht sagt Dir das mehr ) ( portf und portg
werden nicht aufgerufen )

sobald ich aber z.B. " out portf,r25 " schreibe,... passiert
folgendes :
_______________________________________________________________
Building project...
Including  'C:\Programme\Atmel\AVR
Tools\AvrAssembler\AppNotes\m128def.inc'
>> error : Illegal argument type or count << Hier liegt das
"Problem"
Assembly complete with 1 error
__________________________________________________________________

sonst macht die Simulation alles mit,.... ( z.B. " out portd,r25 ")
wird problemlos ausgeführt .... und auch ausgegeben ...

 Woran liegt´s ?

von Christof Krüger (Gast)


Lesenswert?

Ich habe mir mal die m128def.inc angeschaut. Das Problem liegt darin,
dass PORTF und PORTG nicht mehr im I/O Register Adreßraum liegen
(0x00-0x3F) und somit nicht mit in/out erreichbar sind. Sie liegen im
"Memory Mapped I/O" Adreßraum, somit musst du darauf zugreifen wie
auf normales SRAM. Schau dir die Datei am besten mal selbst an.

von Dirk K. (Gast)


Lesenswert?

Hallo Christof,

Hey, vielen Dank für die schnelle Hilfe ! :)

genial !

Bin erst seit Anfang dieser Woche am "assemblieren" und hab´
warscheinlich noch einen haufen AVR-Stolpersteine vor mir,... ist alles
noch sehr "neu" für mich,..


Lieben Gruß,
            Dirk

von Christof Krüger (Gast)


Lesenswert?

Ja, für mich ja auch, bin auch noch nicht lange dabei und arbeite
erstmal mit nem ATMEGA 162, da der etwas kleiner ist, aber auch
Features wie z.B. externes MEM-Interface besitzt.

Die Kunst liegt also im Lesen von Datenblättern und systematischer
Fehlersuche. Wenn er also PORTF an dieser Stelle nicht haben möchte,
schaue ich auch mal nach, ob PORTF überhaupt definiert ist, und wenn
ja, dann wie. Und schon hat man den Fehler gefunden.

von Dirk K. (Gast)


Lesenswert?

Hallo Christof,

Bin dummerweise gleich vom Fusebit ausgegangen, da ich in der PDF von
ATMEL von einer "Standardeinstellung" der Atmega128 MC´s gelesen
hatte, die diese Pinkompatibel zum atmega103er machen soll,.. (
Werkseinstellung )... und das hatte prima zu den "gesperrten" Ports
(F,G) gepasst,.. ( auch in der Doku in diesem Zusammenhang genannt )
War wohl eine Sackgasse ;)

Gruß,
       Dirk

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.