Hi, gibt es eine Möglichkeit, Programme mit den alten Befehlen outp(0xff, DDRB); .... auf dem aktuellen Compiler laufen zu lassen? Ich habe das Buch von G.Schmitt "Mikrocomputertechnik mit ATMEL Familie". Alle C-Programme sind für den alten Compiler aus dem Jahr 2004 oder so. Ich habe versucht mit #include <compat/deprecated.h> die Befehle einzubinden. Mein copiler hat nur noch gemeckert. Wie geht man vor, um alte Befehle einzubinden? Gruß Udo
compat/deprecated.h sollte helfen. Was geht denn damit nicht? Ansonsten sind die doch trivial: #define outp(p, v) (p) = (v) #define inp(p) (p)
Hallo Jörg, hier ist das kleine Programm. Im Anschluß sind die Fehlermeldungen. Ich weiß noch nicht, was ich im Quellcode ändern muß, damit das Programm läuft. Udo /* p3.c Bild 3-20: Verzoegerter Dezimlazaehler mod 100 gemessen 13 sek B-Port: Ausgabe zweistellig dezimal acht Leuchtdioden und BCD-Anzeige */ #include <avr/io.h> // Deklarationen #include <compat/deprecated.h> // Benutzerdefinierte Ausgabe-Funktion vor main void outdez(unsigned char wert, unsigned char port) { unsigned char einer, zehner; // lokale Hilfsvariablen zehner = wert / 10; // Zehnerstelle einer = wert % 10; // Einerstelle outp( (zehner << 4) | einer, port); // Ausgabe } // Hauptfunktion main void main (void) // Hauptfunktion { unsigned char x = 0; // Ausgabezaehler unsigned int i; // Wartezaehler outp(0xff, DDRB); // B-Port ist Ausgang while(1) // Arbeitsschleife Abbruch mit Reset { outdez(x, PORTB); // Zaehler dezimal ausgeben x++; if (x >= 100) x = 0; // Begrenzung auf modulo 100 for (i=0; i<65535; i++); // warten mit leerer for-Schleife } // Ende while } // Ende main Build started 9.2.2006 at 13:09:38 avr-gcc -mmcu=at90s2313 -Wall -gdwarf-2 -O0 -Wp,-M,-MP,-MT,p3altcompiler.o,-MF,dep/p3altcompiler.o.d -c ../p3altcompiler.c ../p3altcompiler.c: In function `outdez': ../p3altcompiler.c:14: error: invalid lvalue in assignment ../p3altcompiler.c: At top level: ../p3altcompiler.c:18: warning: return type of 'main' is not `int' ../p3altcompiler.c: In function `main': ../p3altcompiler.c:21: error: invalid lvalue in assignment make: *** [p3altcompiler.o] Error 1 Build failed with 2 errors and 1 warnings...
Ach du Sch... Das ist ja noch die uralte Version, bei der die Argumente von outp() vertauscht waren. Tu dir und allen anderen einen Gefallen und werf diese Makros einfach raus aus dem Code. Er wird einfacher davon.
Hallo, kann ich parallel zu meinem aktuellen compiler in AVRSTUDIO4 einen älteren compiler einsetzen? Ich möchte die Programme aus dem Buch von G.Schmitt laufen lassen, ohne alle Befehle umzustricken. Das kann ich zu diesem Zeitpunkt noch nicht. Kann man als Einsteiger nicht wissen, daß die Befehle veraltet sind. Kann mir jemand sagen, bis zu welcher Compiler Version diese Befehle outp(0xff,PORTB; verwendet wurden? Es gibt bestimmt in Deutschland viele Anfänger, die ebenfalls diese Programme aus dem Buch nicht nutzen können. Gruß Udo
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.