avr-gcc:schreiben eines unsigned chars an Port

Hallo

ich möchte einen Port beschreiben, das habe ich wie folgt angefangen:

volatile unsigned const *char PORTA = >porta-adresse>

das nimmt aber der Compiler nicht, ausserdem hätte ich das lieber mit putchar oder sowas ähnlichem. Wie sollte ich es machen?

Robert

Reply to
R.Freitag
Loading thread data ...

Die Ports sind nicht direkt memory-mapped. Generic pointer, die mit verschiedenen Adreßspaces umgehen können, sind dafür ziemlicher Overkill.

Der avr-gcc hat doch direkte Port-Unterstützung eingebaut - mit dem passenden Includefile (ich vermute mal, es ist ) reicht ein

PORTD = 0x55;

um Daten auf dem Port zu schreiben. Wenn Du unbedingt willst, kannst Du Dir dafür auch ein putchar definieren, das dann halt nur aus void putchar(char c) { PORTD = c; }

besteht.

cu Michael

Reply to
Michael Schwingen

Michael Schwingen schrieb:

Die Ports beim AVR /sind/ direkt memory-mapped. RTFdatasheet.

Hat der GCC sowieso nicht.

Richtig, und wenn Du ins headerfile siehst, wirst Du feststellen, daß das über MMIO funktioniert.

Daß am Ende statt MMIO dennoch IN/OUT Befehle (je nach Operanden) herauskommen können, organisiert erst der Optimizer.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

I stand corrected.

Hm - das hatte ich wohl übersehen.

cu Michael

Reply to
Michael Schwingen

R.Freitag schrieb:

Eigentlich sollte PORTA schon definiert sein, siehe io.h bzw ioxxxx.h des ausgewaehlten Controllers.

Zugriffsroutinen sind je nach verwendeter avr-gcc Version in iomacros.h oder sfr_defs.h (werden AFAIK mit io.h includiert)

outb(), inb()

formatting link
formatting link

Es gibt auch "A GNU Development Environment for the AVR Microcontroller" von Rich Neswold. Ist jedoch nicht auf den aktuellsten Stand. (ca 280 kb)

servus thomas «

--
"Der Himmel hat begonnen, die *wahren* Freunde auszuwählen."
'20th Century Boys' von Naoki Urasawa (Planet Manga)
Band #9 bei https://www.paninicomics.de/?gotoshop=ondemand;
Info zu 20CB: http://www.aniki.info/20th_Century_Boys
Reply to
Thomas Mozgan

"Thomas Mozgan" schrieb:

Deprecated. Die werden mal irgendwann verschwinden. Die stammen noch aus einer Zeit, da der AVR-GCC die direkte Zuweisung noch nicht verstanden hat.

Naja, alles Wesentliche daraus (insbesondere das Kapitel ``Installing the GNU tools'') ist in das von Dir erwähnte Dokument integriert worden.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.