Forum: PC Hard- und Software Problem mit avr studio5


von michi (Gast)


Lesenswert?

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
von Timmo H. (masterfx)


Lesenswert?

#include <avr/io.h>

von michi (Gast)


Lesenswert?

danke für die schnelle antwort aber das hat nichts gebracht die fehler 
sind immer noch da hast evtl noch eine Idee

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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]

von Timmo H. (masterfx)


Lesenswert?

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?

von michi (Gast)


Lesenswert?

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;

}

von michi (Gast)


Lesenswert?

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

von Mehrwert (Gast)


Lesenswert?

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.

von Sam .. (sam1994)


Lesenswert?

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