Forum: Compiler & IDEs outp(); resp aoutb(); im avr-libc Reference Manual 1.0.2


von Toni (Gast)


Lesenswert?

Hallo

Ich verstehe nicht, warum im Reference Manual nichts vom Zugriff auf
die Ports mit der Funktion outp(); geschrieben wird.

Auf Seite 74ff wird die Funktion outb(); [mit weichem 'b']
beschrieben.
Gibt es leichtere Kost dazu?

Gruss

Toni

von Matthias (Gast)


Lesenswert?

Hi

Es ist beschrieben. zumindest noch in der Version 0.99.90.20030908

Aber wohl nicht ausführlich weil man diese Makros nicht mehr verwenden
soll.
PORTB = val; ist mitlerweile die bevorzugte Schreibweise für
outp(val,PORTB);

Matthias

von Christian Schifferle (Gast)


Lesenswert?

Ja ja, ist wirklich eine feine Sache, die sich die Entwickler da
überlegt haben.
Und sobald du mal ein so geschriebenes Programm portieren willst auf
einen uC mit einer vielleicht doch etwas anderen Speicherstruktur
kannst du all diese schönen direkten Portzuweisungen raussuchen und
korrigieren.
Genau deshalb verwende ich nach wie vor die entsprechenden
Bilbliotheksfunktionen und, falls diese mal nicht mehr existieren
sollten, mach ich mir halt meine eigenen.

Viele Grüsse von einem halt bereits etwas angegrauten SW-Entwickler.
Christian

von Jörg Wunsch (Gast)


Lesenswert?

Dann mach' Dir besser Deine eigenen.  Benenne sie am besten OUT oder
sowas, oder MYOUT, damit sie möglichst wenig Chance haben, jemals mit
denen möglicher Compiler zu kollidieren.

Die Variante PORTx = val; ist halt die, die auch von Atmel propagiert
wird.  Daß es im avr-gcc/avr-libc jemals outp() & Co gab lag nur
daran, daß er es in früheren Versionen leider noch nicht besser
konnte.

Davon abgesehen, gerade den Teil, der direkte Port-EA macht, schreibst
Du doch wohl ohnehin für jeden Controller komplett neu, oder?  Wenn Du
ein portables Projekt brauchst, hast Du dafür eine Art hardware
abstraction layer.

Für die Quelldateien, die ich bislang von alter Syntax auf neue
portiert habe, habe ich auch nur paar Sekunden über den
(zugegebenermaßen kryptisch anmutenden ;-) regulären Ausdruck
nachdenken müssen, den ich für die suchen&ersetzen Funktion des
Editors benötigt habe, um alles zu konvertieren.  Das war pro Projekt
kaum mehr als 5 Minuten Arbeit.

von Toni (Gast)


Lesenswert?

Guten Abend

Interessant, das alles zu lesen !

Als Neuling, der das Tutorial von Ch. Schifferle "Programmierung der
AVR-Microcontroller mit C" durcharbeitet, aber so ziemlich ....

Was soll ich denn nun lernen ?

Gruss
Toni

von Peter Fleury (Gast)


Lesenswert?

>Als Neuling, der das Tutorial von Ch. Schifferle "Programmierung der
>AVR-Microcontroller mit C" durcharbeitet, aber so ziemlich ....

Dieses Tutorial ist eben veraltet und und beschreibt nicht nicht den
aktuellen AVR-GCC Compiler.
Deshalb besser Jörgs AVRlibc Manual durcharbeiten.

von Jörg Wunsch (Gast)


Lesenswert?

Naja, 's ist nicht nur von mir, auch wenn ich einen guten Teil davon
geschrieben habe...  Die anderen Entwickler der avr-libc haben da
ebenfalls mehr oder minder große Stücke beigetragen.  Nicht zu
vergessen, daß ein Teil davon auf Arbeiten von Harald Kipp (inline
assembler tutorial) und Rich Neswold (Installationsanleitung,
ursprüngliches avr-libc Manual) basiert.

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.