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
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
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
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.
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
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.