Forum: Mikrocontroller und Digitale Elektronik AtmelStudio6 generiert massenhaft Fehler


von Ingo H. (ingo_h30)


Angehängte Dateien:

Lesenswert?

Hallo alle miteinander.

Ich habe begonnen mich durch das AVR-Tutorial zu hangeln. Muss auch dazu 
sagen dass das mein erster Kontakt mit der AVR-Serie ist. Ich habe 
vorher schon mal kleinere Sachen mit A51-µC gemacht (z.b. AT89C2051) was 
auch gut funktionierte.

Für ein Projekt benötige ich aber nun Analogeingänge und habe mich da 
für den ATTiny13 entschieden.

Nach der Installation des AtmelStudios Version 6.1.2562 hab ich versucht 
ein kleines Beispielprogramm zu kompilieren was in einer Flut von 
Fehlermeldungen endete.

Ein Programm mit 5 Zeilen Code generiert 278 Errors !?!?!!??! (siehe 
Screenshot)
Da war ich doch platt! Was mache ich falsch?

Ingo

von Karl H. (kbuchegg)


Lesenswert?

Vergiss die 278

Es ist immer der gleicher Fehler.

Aus irgendeinem Grund wird bei dir sowohl
tn13def.inc
also auch
tn13Adef.inc
inkludiert.

Dieses Rätsel gilt es zu lösen. Wenn es gelöst ist, verschwinden alle 
278 Fehler auf einen Schlag.

Also: hast du irgendeine Idee, warum das System der Ansicht sein könnte, 
du würdest für einen Tiny13A assemblieren und sich genötigt sieht, die 
tn13Adef.inc zu inkludieren?

von Karl H. (kbuchegg)


Lesenswert?

Alternativ könntest du natürlich auch den Weg des geringsten Widerstands 
gehen und darauf bauen, dass sich Tina13 und Tiny13A schon nicht zu 
stark unterscheiden, und deinen include umändern auf

.include "tn13Adef.inc"

von Jojo S. (Gast)


Lesenswert?

oder das .include ganz weglassen, evtl. ist das ein Feature vom 
AVRStudio das es das aus den Projekteinstellungen automatisch einfügt.

von Ingo H. (ingo_h30)


Lesenswert?

Danke für die schnellen Antworten.
Ich bin ja völlig begeistert :)

Karl sein hinweis hat auf Anhieb funktioniert. Ich habe tatsächlich nur 
tn13Adef.inc eingefügt. Laut Datenblatt unterscheiden sich die beiden 
wohl nicht. Warum das nicht mit tn13def.inc funktioniert ist mir zwar 
nicht klar aber man muss ja nicht alles wissen.

Hurra, Problem gelöst. Vielen dank nochmal.

Gruss Ingo

von Jojo S. (Gast)


Lesenswert?

gerade beim 5er Studio ausprobiert aber es ist genauso:

- 278 Fehler wenn ich in den Projekteinstellungen Tiny13A wähle und das 
Tiny13 include anziehe
- 0 Fehler wenn Projekt und include Device übereinstimmen.

In den Einstellungen wird aus dem Device das entsprechende include 
generiert und per Compilerswitch übergeben.

von Klaus (Gast)


Lesenswert?

.include "tn13adef.inc"

    ldi r17,4
    mov r16, r17
    out portb, r16

ende:
     rjmp ende

So wie Jojo S. schon geschrieben hat.

Jojo S. schrieb:
> 0 Fehler wenn Projekt und include Device übereinstimmen.

von Karl H. (kbuchegg)


Lesenswert?

Ingo H. schrieb:
> Warum das nicht mit tn13def.inc funktioniert ist mir zwar
> nicht klar aber man muss ja nicht alles wissen.

Ist doch ganz einfach.
Beide inc-Files werden includiert

in tn13def.inc gibt es eine Defintion für PORTB
in tn13adef.inc gibt es eine Definition für PORTB

in tn13def.inc gibt es eine Definition für DDRB
in tn13adef.inc gibt es eine Definition für DDRB

in tn13def.inc gibt es ....


und das ganze Spielchen wiederholt sich 278 mal. Alles und jedes ist 
doppelt vorhanden. Einmal, weil es in tn13def.inc steht und das andere 
mal, weil es in tnt13adef.inc steht.
Und genau das sagt dir auch der Assembler. Lies doch mal die 
Fehlermeldungen aufmerksam. Steht alles da. Du darfst dich nur nicht von 
der schieren Menge der Fehlermeldungen beeindrucken lassen. Die sind 
alle vom gleichen Typus und sie deuten alle auf dasselbe Problem hin.

von Ingo H. (ingo_h30)


Lesenswert?

Karl schrieb:

> Ist doch ganz einfach.
> Beide inc-Files werden includiert.....

Das Problem hat sich ja Dank des Hinweises gelöst, mir ist trotzdem 
nicht klar warum dann zwei Definitiondateien eingebunden oder vom 
Assembler ausgewertet werden obwohl nur eine im Quelltext angegeben ist.

Kann man das irgendwo bei dem Atmelstudio einstellen?

Gruss

von Michael L. (michaelx)


Lesenswert?

Ingo H. schrieb:
> Karl schrieb:
>
>> Ist doch ganz einfach.
>> Beide inc-Files werden includiert.....
>
> Das Problem hat sich ja Dank des Hinweises gelöst, mir ist trotzdem
> nicht klar warum dann zwei Definitiondateien eingebunden oder vom
> Assembler ausgewertet werden obwohl nur eine im Quelltext angegeben ist.
>
> Kann man das irgendwo bei dem Atmelstudio einstellen?

Ja klar. Das komische Studio hat da einen Parameter unter dem Menüpunkt 
Configuration Options, wo man den Prozessor auswählen muss, und ist 
deswegen der Meinung, von sich aus das Include-File für diesen Typ 
automatisch einzubinden.

Ich finde das sinnlos und doof, und es ist immer wieder für ein Ärgernis 
gut.

Grüße.

von Ingo H. (ingo_h30)


Lesenswert?

Danke für den Tip!

Ich habe das mal ausprobiert und die Includezeile weggelassen. 
Funktioniert dann auch. Jetzt wird mir das auch klar. Der Controllertyp 
wird ja ganz zu Anfang beim Erstellen des Projektes erfragt. In diesem 
Punkt muss ich dir dann Zustimmen. Ist wirklich doof.

Gruss

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.