Forum: Mikrocontroller und Digitale Elektronik der Befehl PIND ist nicht deklariert? Wo ist der Fehler?


von Fritz B. (kleinfritzchen)


Lesenswert?

Hallo, hab hier ein kleines Übungsprog. was ich aber nicht Kompilieren 
kann und ich weis nicht wo der Fehler liegt! Ich verwende das 
AtmelStudio 6.1 und als Board ein aTeVal von eHaJo.
hier mal der Code:
1
/*
2
 * TestIOUebung.c
3
 *
4
 * Created: 03.03.2014 14:42:35
5
 *  Author: Fritz
6
 */ 
7
8
9
#include <avr/io.h>
10
11
12
int main(void)
13
{
14
  
15
  
16
  
17
  DDRD = 0b00100000;
18
  
19
  PORTD =0xff;
20
  
21
  
22
  for(;;){
23
    if (!(PIND & (1<<PD2)  ))
24
    {
25
      
26
      PORTB &= ~(1<<PD5);
27
     }
28
     else PORTD |= (1<<PD5);
29
  }
30
}
Als Fehler bekomme ich: Error  1  'PIND' undeclared (first use in this 
function)  C:\Users\Fritz\Documents\Atmel 
Studio\6.1\TestIOUebung\TestIOUebung.c  23  9  TestIOUebung
 Dder Befehl sollte doch vorhanden sein. Hab ich mir versehentlich eine 
Datei geschossen? oder liegtes daran das ich noch andere Software für c 
Programmierung auf dem Rechner installiert hab?

von Frank (Gast)


Lesenswert?

den richtigen µC ausgewählt?

von Fritz B. (kleinfritzchen)


Lesenswert?

Ja, ist ein Atega8A und der wird auch angezeigt im AtmelStudio

von Georg G. (df2au)


Lesenswert?

Das Programm ist in Ordnung (auch, wenn du vermutlich an einer Stelle 
Port D und Port B verwechselt hast). Ich kann es problemlos compilieren 
(Studio 4.18).

von Fritz B. (kleinfritzchen)


Lesenswert?

ist es möglich das ich mir irgendwie das AtmelStudio geschossen hab?
Ich werd mal heute Abend das Atmel Studio deinstalieren und dann wieder 
neu draufspielen, mal sehen ob's was bringt.

von Georg G. (df2au)


Lesenswert?

Welchen Typ hast du genau in der Projekt Definition angegeben? Einen 
Typ atmega8A gibt es bei mir nicht, nur einen atmega8.

von Paul B. (paul_baumann)


Lesenswert?

Fritz schrob:
>Ich werd mal heute Abend das Atmel Studio deinstalieren und dann wieder
>neu draufspielen, mal sehen ob's was bringt.

Nimm lieber die Version 4.19 davon, die funktioniert noch richtig.
Mit der Version 6.1 haben sich schon genug Leute die Schwindsucht
an den Hals geärgert.
:-(
MfG Paul

von Fritz B. (kleinfritzchen)


Lesenswert?

Glaub ich gern das das nerven kostet! Vor allem für Anfänger!!! Es gibt 
nichts schlimmeres als wenn Beispiele mit irgendwelchen Fehlern 
aufwarten die man noch nicht versteht.
Ich hab es jetzt hinbekommen. Hab AtmelStutio runtergeschmissen und neu 
instaliert und jetzt geht es.
Ich hab noch mal nachgesschaut, im Atmelstudio wird oben rechts 
"Atmega8A" als  chip angezeigt.
Ich bin mal gespannt auf nächste Woche da hab ich nen VHS Kurs 
"Einführung in die Mikrokontroler Technik" mit Atmega8 belegt. Ist zwar 
Assembler aber soll ja auch nicht schaden als Anfänger...

von Rudolph (Gast)


Lesenswert?

Fritz Bie schrieb:
> "Einführung in die Mikrokontroler Technik" mit Atmega8 belegt. Ist zwar
> Assembler aber soll ja auch nicht schaden als Anfänger...

Es geht ja auch um die Technik als solche und nicht darum, Programmieren 
zu lernen.
Ist in der Elektroniker-Ausbildung auch so, bisschen in Assembler 
rumprogrammieren um einen Einblick zu bekommen wie so ein Baustein 
funktioniert.

Und das 6er Studio läuft hier einfach.

Fritz Bie schrieb:
> oder liegtes daran das ich noch andere Software für c
> Programmierung auf dem Rechner installiert hab?

Welche? Microsoft Visual Studio?
Das verträgt sich nicht so richtig.

von Jojo S. (Gast)


Lesenswert?

PIND ist übrigends kein Befehl sondern ein symbolischer Name für einen 
Wert. Die werden in den include files definiert, der Fehler wäre da zu 
suchen gewesen. Das 'avr\io.h' ist ein Sammel-include, das 
prozessorabhängige wird darin über ein #define eingefügt. Und dieses 
#define wird versteckt im Compiler gesetzt, gesteuert über den Schalter 
'-mcu='. Diese Angabe findet man in den Projekteinstellungen und nach 
dem kompilieren im Ausgabefenster, da kann man kontrollieren ob der 
richtige µC drin steht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rudolph schrieb:
> Welche? Microsoft Visual Studio?
> Das verträgt sich nicht so richtig.

Möchtest du damit sagen, das z.B. VC(#/++) Express 2010 das Atmel Studio 
6 stören würde?
Das wäre schlecht und ein Grund, hier Studio 6 nicht zu installieren.

von Rudolph (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Möchtest du damit sagen, das z.B. VC(#/++) Express 2010 das Atmel Studio
> 6 stören würde?
> Das wäre schlecht und ein Grund, hier Studio 6 nicht zu installieren.

Okay, ich habs oben verallgemeinert, das war nicht korrekt.

Mir hat es mal die Installation vom Atmel Studio zerrissen als ich 
Visual Studio auch noch dazu installiert habe.
Dann kam im Atmel Studio eine merkwürdige Fehlermeldung mit nicht 
vollständig installierten Updates, das ging garnicht mehr.

Den Fehler hast Du ja aber nicht sondern ein Problem mit den Includes.

von Kaj (Gast)


Lesenswert?

Rudolph schrieb:
> Welche? Microsoft Visual Studio?
> Das verträgt sich nicht so richtig.

Komisch, hab Atmel Studio 6.1, Visual Studio 2010 Proffesional, Visual 
Studio 2012 Ultimate, QT, und sonst was alles isntalliert, und das 
verträgt sich alles wunderbar. (Win7 64bit)

Grüße

von Chefkoch (Gast)


Lesenswert?

Bei mir läuft die Kombi auch geschmeidig

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.