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
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 ?
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.
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
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.
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