outp(); resp aoutb(); im avr-libc Reference Manual 1.0.2

Gast #77230
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
Gast #77231
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
Gast #77232
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.
Gast #77233
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
Gast #77234
>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.
Gast #77235
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.