Hallo zusammen ich bin ein neuling im c programieren und hab mir das avr studio 5 runtergeladen. Ich benutze das Stk600 mit den µc Atemega2560. So zum probelem ich hab mir ein kleinen cod geschrieben um das board zu testen /** * \file * * \brief Empty user application template * */ /* * Include header files for all drivers that have been imported from * AVR Software Framework (ASF). */ #include <asf.h> int main (void) { board_init(); DDRB = 0xFF; //Alle Bits an Port B auf Ausgang schaltem DDRA = 0X00; //Alle Bits an Port A auf Eingang schalten while(1) { PORTB =PINA; //Tasteninformation an POTRB ausgeben } return 0; // Insert application code here, after the board has been initialized. } Nun beim compelieren kommt diese fehler und ich kann damit nichts anfangen die Fehler: DDRB undeclared(first use in this function) each undeclared identifier is reported only once for each function is appears in DDRA undeclared(first use in this function) PINA undeclared (first use in this function) ich hoffe ihr könnt mir weiter helfen danke im vorraus
:
Verschoben durch Moderator
danke für die schnelle antwort aber das hat nichts gebracht die fehler sind immer noch da hast evtl noch eine Idee
Compilierst du denn überhaupt für einen ATmega2560? Möglicherweise hast du einen ganz anderen Controllertyp eingestellt. Allerdings kann ich mir keinen AVR vorstellen, der keinen Port B hätte (und damit kein DDRB). p.s.: Bitte markieren deinen C-Code mit
1 | [c] |
2 | hier ist dein Programm |
3 | [/c] |
Ich schätze auch dass der Controller nicht definiert ist (vermutlich gar keiner) Versuch mal
1 | #define MCU atmega2560
|
2 | #include <asf.h> |
3 | #include <avr/io.h> |
4 | |
5 | ...
|
Normalerweise sollte das MCU im Makefile stehen und durch die Entwicklungsumgebung eingetragen werden (Projekteinstellungen). Vermutlich ist jetzt noch nichtmal F_CPU eingestellt. Projekt aus altem importiert?
ich kann nur den auswählen weil beim erstellen von einem neuen projekt fragt mich das avr studio welches board ich verwende und da gibt es nur 2 stk600 einer mit einem µc 1260 und einen mit Atxmega 256A3 und ich hab mit Atmega2560 auf dem board ist des nicht der gleiche? Wenn nicht wie kann ich den controller ändern? hier noch mal mein programm /* * Include header files for all drivers that have been imported from * AVR Software Framework (ASF). */ #include <asf.h> #include<avr/io.h> int main (void) { board_init(); // Insert application code here, after the board has been initialized. DDRB = 0xFF; //Alle Bits an Port B auf Ausgang schaltem DDRA = 0X00; //Alle Bits an Port A auf Eingang schalten while(1) { PORTB =PINA; //Tasteninformation an POTRB ausgeben } return 0; }
Hey das war wirklich das problem das der falsche Controller eingestellt ist. Danke Tut mir eid das ich so lästig bin aber ich hab noch das problem mit meine stk 600 ich kann noch keine verbindung auf bauen. wie und wo stell ich das im avr studio 5 ein. danke
Du hast dir diverse Kriegsfronten auf einmal aufgemacht. Der übliche Weg ist es, die Anzahl der Fronten zu reduzieren oder sich zumindest leichte Gegner zu suchen. Also: michi schrieb: > ich bin ein neuling im c programieren Man kann C besser auf einem PC statt auf einem Mikrocontroller lernen. Dabei sollte man auf dem PC allerdings platformspezifische Erweiterungen (Microsoft macht das gerne) meiden. > und hab mir das avr studio 5 runtergeladen. Das einen Haufen Bugs hat und unvollständig ist. Wenn du schon C auf einem Mikrocontroller lernen möchtest, dann ist für Anfänger ist die Kombination aus AVR Studio 4 und WinAVR (ja, man braucht beides) einfacher. Die IDE ist hässlicher, kann weniger (kein Nachteil für Anfänger) und hat den Vorteil, dass sie halbwegs funktioniert. > Ich benutze das Stk600 mit den µc Atemega2560. Geht. > * Include header files for all drivers that have been imported from > * AVR Software Framework (ASF). Von ASF, besonders für die Atmel XMegas, lassen sogar erfahrene Entwickler die Finger. Der Code ist schlecht geschrieben, langsam und umständlich zu benutzen. Damit nicht genug. Normale AVRs wie ATmega2560 werden gar nicht von ASF unterstützt (zumindest war das so, als ich das letzte mal in die ASF-Katastrophe reingesehen habe). Da kannst du dich dumm suchen, das wird nichts mit ASF. Schön brav selber Code nach Datenblatt schreiben ist der bessere Weg. Nebenbei lernt man den Mikrocontroller verstehen, statt Versatzstücke einer Bibliothek, die eine mehr oder weniger (bei ASF weniger) gelungene Abstraktion darstellen, also nur das zeigen, was die Bibliotheksentwickler einen sehen lassen wollen.
Mehrwert schrieb: > Das einen Haufen Bugs hat und unvollständig ist. Wenn du schon C auf > einem Mikrocontroller lernen möchtest, dann ist für Anfänger ist die > Kombination aus AVR Studio 4 und WinAVR (ja, man braucht beides) > einfacher. Die IDE ist hässlicher, kann weniger (kein Nachteil für > Anfänger) und hat den Vorteil, dass sie halbwegs funktioniert. Bugs hab ich nicht bemerkt, kann weniger - ja leider, häßlicher? Nein eher standard und damit bedienungsfreundlicher, besonders dass Breakpointsetzen (früher immer rechtsklick am Rand und erstmal switch breakpoint suchen).
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.