Forum: Mikrocontroller und Digitale Elektronik AVR Studio include Dateien einbinden


von Fabian S. (phoenix69)


Lesenswert?

Hi,

bitte nicht lachen, aber ich bin ein absoluter Neuling auf diesem 
Gebiet. Aber vielleicht kann mir jemand hier helfen mein Problem zu 
lösen.

Ich will für einen Atmel 2560 ein Programm für eine H-Brücke erstellen 
um einen Geleichstrommotor (Rechts/Linkslauf) usw. anzusteuern.

Und benutze zum programmieren das AVR Studio.

Ok mein Problem:

Das Programm hier ist der absolute 1.Versuch!

Kann mir jemand sagen wie ich die include Dateien "richtig" einbinden 
muß?


Fehlercode siehe unten!





#include <reg515.h>
#include <stdio.h>

sbit rechts=PINA0;      //Pin A.0=Taster rechts
sbit links=PINA1;    //Pin A.1=Taster links
sbit auto=PINA2;    //Pin A.2=Taster Automatik
sbit hand=PINA3;    //Pin A.3=Taster Handbetrieb
sbit winkel=PINA4;       //Pin A.3=Taster Winkelautomatik

sbit igbtrechts=DDRB0;  //Pin B.0=Ausgang IGBT Rechts
sbit igbtlinks=DDRB1;    //Pin B.1=Ausgang IGBT Links
sbit ledrechts=DDRB2;    //Pin B.2=Ausgang LED Rechtslauf
sbit ledlinks=DDRB3;    //Pin B.3=Ausgang LED Linkslauf
sbit ledhand=DDRB4;    //Pin B.4=Ausgang LED Handbetrieb
sbit ledauto=DDRB5;    //Pin B.5=Ausgang LED Automatikbetrieb
sbit ledwinkel=DDRB6;    //Pin B.6=Ausgang LED Winkelautomatik

int i,x,y;


void main (void)
{

while((auto==0)&&(winkel==0))
{
ledhand=1;
  while(rechts==1)
  {
  igbtrechts=1;
  ledrechts=1;
    for(i=0,i<27000,i++)
    {
    }
  igbtrechts=0;
  ledrechts=0;
    for(x=0,X<10000,x++)
    {
    }
  }
  while(links==1)
  {
  igbtlinks=1;
  ledlinks=1;
    for(i=0,i<27000,i++)
    {
    }
  igbtlinks=0;
  ledlinks=0;
    for(x=0,X<10000,x++)
    {
    }
  }
}

C:\Usersversuch.asm(1): error: Cannot find include file: reg515.h
C:\Usersversuch.asm(2): error: Cannot find include file: stdio.h

C:\Users\versuch.asm(5): error: sbit: Unknown instruction or macro
C:\Users\versuch.asm(5): error: rechts: Unknown instruction or macro
C:\Users\versuch.asm(5): error: syntax error, unexpected '='

von Stefan M. (celmascant)


Lesenswert?

Ich weiss zwar nicht WAS du da einbinden willst, aber evtl. sind die 
Dateinamen falsch geschrieben oder die Files nicht im richtigen Ordner?

In den Zeilen nach den Includes weis ich ehrlich gesagt nicht, was du 
bezweckst. Schau am besten mal in das Tutorial:
Für Assembler: http://www.mikrocontroller.net/articles/AVR-Tutorial
Für den Rest^^: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Ich programmiere in Assembler und habe mir 95% aus dem Tutorial 
rauslesen können. Die restlichen 5% waren einfach logische Fehler 
mangels Erfahrung...

Gruss Stefan

von Sebastian S. (sts301)


Lesenswert?

> int i,x,y;
[..]
>     for(x=0,X<10000,x++) //das x bei x<10000 gehört klein geschrieben
>     for(x=0,X<10000,x++) //deto

2. ich halte es so für sinvoller

for (int x oder i = 0; x oder i < Zahl; x oder i ++);

von Karl H. (kbuchegg)


Lesenswert?

Fabian Stohr schrieb:

> C:\Usersversuch.asm(1): error: Cannot find include file: reg515.h
                  ****

Wieso gibst du einer C-Datei die Endung asm?

Kann gut sein, dass der Compiler sich die Endung ansieht, entscheidet, 
dass das eine Assemblerdatei sein soll und daher die Includes auf dem 
Verzeichnis für Assembler-Dateien sucht. Die restlichen Fehlermeldungen 
sprechen auf jeden Fall für diese Theorie.

Nenn C Quellcode Dateien auch *.c
Dann hast du weniger Probleme.

von holger (Gast)


Lesenswert?

>C:\Usersversuch.asm(1): error: Cannot find include file: reg515.h

reg515.h sieht nach einem 8051 kompatiblem
Controller aus ;) Das ist beim AVRStudio wohl nicht so
das richtige.

>sbit rechts=PINA0;      //Pin A.0=Taster rechts

sbit kennt Winavr z.B. auch nicht. Das kenn ich auch wieder
nur von 8051ern. Wo kommt denn der Quellcode her?

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.