Forum: Mikrocontroller und Digitale Elektronik AVR Studio vs Atmega 16


von Dirk E. (techniker01)


Lesenswert?

Hallo zusammen
hoffe ihr könnt mir helfen
Bin neu in der Elektronik und wollte mal mit einem Atmega 16, dem 
Evolution Bord von Pollin und AVR Studio ein kleines einfaches Programm 
schreiben.

Dazu muß ich doch erstmal den ".include"m16def.inc" laden.
So und wenn ich auf Build gehe sagt er "Error creating Process"

Also was ist an der Zeile den Falsch?

Vielen Dank schon mal im vorraus.

von mehrfacher STK500-Besitzer (Gast)


Lesenswert?

Wird das Pollin-Board überhaupt vom AVR-Studio unterstützt?

von Johannes M. (johnny-m)


Lesenswert?

Dirk Engelmann wrote:
> Dazu muß ich doch erstmal den ".include"m16def.inc" laden.
Öh, wie "lädst" Du die Datei denn? Du weißt hoffentlich, dass Du erstmal 
überhaupt ein Projekt erstellen musst...

von Johannes M. (johnny-m)


Lesenswert?

mehrfacher STK500-Besitzer wrote:
> Wird das Pollin-Board überhaupt vom AVR-Studio unterstützt?
Nicht direkt...

von Christian S. (mueke)


Lesenswert?

Aber wo liegt das Problem.... Ich schreibe meine Applikationen auch im 
AVR-Studio und lade die Hex-File dann mit Ponyprog aufn Chip

von Johannes M. (johnny-m)


Lesenswert?

Christian Schmalor wrote:
> Aber wo liegt das Problem.... Ich schreibe meine Applikationen auch im
> AVR-Studio und lade die Hex-File dann mit Ponyprog aufn Chip
Das "Problem", das derzeit eigentlich noch keines ist, ist, dass der OP 
bisher nur AVRStudio und das Pollin-Board erwähnt hat (und kein 
PonyProg), was den mehrfachen dazu bewegt hat, schonmal dezent den 
Hinweis einfließen zu lassen, dass da zur Vollendung eventuell noch was 
fehlt...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Dirk Engelmann wrote:
> Dazu muß ich doch erstmal den ".include"m16def.inc" laden.
> So und wenn ich auf Build gehe sagt er "Error creating Process"

Kannst du näher beschreiben, was du machst, ich verstehe es nicht, so 
dass ich einen sicheren Tipp abgeben kann.

Es könnte nämlich sein sein, dass der Aufruf von WinAVR über das 
GCC-Plugin klemmt. Voraussetzung wäre,

1/ dass du ein C Projekt angefangen hast. Dagegen spricht, dass du mit 
dem .include"m16def.inc" eine typische Assembler-Zeile angegeben hast 
und

2/ dass du ein rel. modernes WinAVR aus 2007 benutzt

Jetzt weiss ich nicht, ob das nur ein Fehler bei deiner Projektauswahl 
ist oder meine Vermutung grundsätzlich falsch ist.

Bitte füge zu deiner Beschreibung auch hinzu, welche AVR Studio Version 
inkl. Servicepacknummer und ggf. welche WinAVR Version und welches 
Windows du hast. Hier gibt es auch Problemmöglichkeiten (allerdings mit 
anderen Fehlermeldungen).

von Dirk E. (techniker01)


Lesenswert?

ja das Projekt erstelle namen geben den µc und die schnittstelle 
auswählen. Wollte dabei übers parrall port an die ISP schnittstelle 
gehen. wiel das sei der sicherste weg. Das Bord soll als STK 500 erkannt 
werden.

will erstmal eine LED über ein port blinken lassen. Um zu schauen ob 
alles passt.

Danke für die schnelle Antwort

von Dirk E. (techniker01)


Lesenswert?

ich benutze Win Me und

AVR Studio    4.11.401
GUI Version    4, 11, 0, 401


Operating System
Major      6
Minor      0
PlatformID    2
Build      6000

Plugins:

Stk500Dll  1, 0, 0, 43

von Dirk E. (techniker01)


Lesenswert?

hab schon mit Keil gearbeitet und so einiges gemacht aber immer nur im 
Simulator. Jetzt will das auch mal praktisch nutzen.

von Johannes M. (johnny-m)


Lesenswert?

Dirk Engelmann wrote:
> will erstmal eine LED über ein port blinken lassen. Um zu schauen ob
> alles passt.
Dann musst Du erstmal ein komplettes Programm schreiben. Da reicht die 
m16def.inc allein nicht aus. Schau Dir das AVR-Tutorial mal an.

von Dirk E. (techniker01)


Lesenswert?

Ok es liegt am Projekt erstellen.

Also ich wähle einen Dateinamen der mit .asm endet

dann nehme ich den µc (hab jetzt mal aus dem Tutorial mal ein kurzes 
Prog für den Atmega8 genommen)

.include "m8def.inc"         ; Definitionsdatei für den Prozessortyp 
einbinden

         ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der 
Konstanten 0xFF
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB 
ausgeben

         ldi r16, 0b11111100 ; 0b11111100 in r16 laden
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

und dann kann ich zwischen

JTAGICE mkII
ICE 40
ICE 50
JTAG ICE
AVR Simulator
ICE 200

wählen.

Hab jetzt zur Simulation den AVR Simulator gewählt.

Jetzt sucht er die hex datei und findet sie nicht.


Müste dann um an das Board zu senden die JTAG ICE nehmen.(denk ich mal)
Brauche erstmal den Anfang und die Einstellungen dann komm ich klar.
War damals mit Keil genauso.

von Karl H. (kbuchegg)


Lesenswert?

Dirk Engelmann wrote:
> Ok es liegt am Projekt erstellen.
>
> Also ich wähle einen Dateinamen der mit .asm endet

wenn du neues Projekt anlegst, ist im ersten Dialog
die Abfrage nach dem Projektnamen. Den gibst du ein,
woraufhin AVR-Studio einen Dateinamen dafür vorschlägt.
Hüte dich vor allen Projektnamen die irgendwelche Besonderheiten
enthalten. Also keine Umlaute, kein Leerzeichen im Namen, etc.
Am besten du beschränkst dich auf die Zeichen A-Z, a-z und 0-9.
Das eine oder andere Sonderzeichen mag noch angehen. Aber halte
die Dinge einfach! Den Dateinamen lässt du auf jeden Fall mit einem
Buchstaben beginnen.

Achte auch darauf, dass das Projekt nicht in dem bescheuerten
'MyDokuments', oder wie das heist, Pfad abgelegt wird, sondern
erzeuge dir auf C:\ einen Ordner 'Projekte' und den gibst du
als Pfad im AVR Studio an. Im Dialog noch 'Verzeichnis erzeugen'
und 'Datei erzeugen' anhaken und es geht weiter zum nächsten
Dialog. Dort Prozessor und Simulator auswählen. Fertig.

>
> dann nehme ich den µc (hab jetzt mal aus dem Tutorial mal ein kurzes
> Prog für den Atmega8 genommen)
>
> .include "m8def.inc"         ; Definitionsdatei für den Prozessortyp
> einbinden
>
>          ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der
> Konstanten 0xFF
>          out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB
> ausgeben
>
>          ldi r16, 0b11111100 ; 0b11111100 in r16 laden
>          out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben
>
> ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife


Yep. Den Code in das vom AVR Studio vorgefertigte Textfenster
eingeben (in der Titelzeile steht der Dateiname der Text-Datei).

Bis jetzt ist dein Programm nur ein Text. Jetzt muss irgendwer
daraus das eigentliche Programm generieren. Das macht in dem
Fall der Assembler. Den startest du zb. mit F7

rummel, rummel, rummel. Nach ein paar Sekunden ist dein
Programm fertig gebaut. Achte auf das Ausgabefenster. Da
läuft einiges durch. Untersuche es, ob da etwas auftaucht
was nach Fehlermeldung stinkt.


> Hab jetzt zur Simulation den AVR Simulator gewählt.
>
> Jetzt sucht er die hex datei und findet sie nicht.

Wenn der Build Schritt (F7) geklappt hat, dann sollte
das jetzt kein Problem mehr sein. Ergebnis des Build
Schrittes ist die HEX-Datei.

von Dirk E. (techniker01)


Lesenswert?

Ok erste hürde geschafft, mein rechner hat mich verarscht.
Es lag an der ordnerverwaltung.

Danke

von Dirk E. (techniker01)


Lesenswert?

OK mit dem ATmega8 hat alles funktioniert. Nun hab ich nur die include 
m16def eingesetzt (was normal gehen sollte)

.include "m16def.inc"         ; Definitionsdatei für den Prozessortyp 
einbinden

         ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der 
Konstanten 0xFF
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB 
ausgeben

         ldi r16, 0b11111100 ; 0b11111100 in r16 laden
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

und er sagt mir

Attempt to redefine keyword 'or'

was soviel bedeutet neudefinierung des schlüsselworts or

; UCSRA
.equ  RXC  =7
.equ  TXC  =6
.equ  UDRE  =5
.equ  FE  =4
.equ  OR  =3
.equ  DOR  =3  ;New name for OR
.equ  PE  =2
.equ  U2X  =1
.equ  MPCM  =0

jetzt hab ich die zeile mit einem ; rausgenommen und es geht.
; UCSRA
.equ  RXC  =7
.equ  TXC  =6
.equ  UDRE  =5
.equ  FE  =4
;.equ  OR  =3
.equ  DOR  =3  ;New name for OR
.equ  PE  =2
.equ  U2X  =1
.equ  MPCM  =0
 Aber das fällt mir doch mal auf die Füße wenn ich or verwenden will 
oder?

von Karl H. (kbuchegg)


Lesenswert?

Dirk Engelmann wrote:

> jetzt hab ich die zeile mit einem ; rausgenommen und es geht.
> ; UCSRA
> .equ  RXC  =7
> .equ  TXC  =6
> .equ  UDRE  =5
> .equ  FE  =4
> ;.equ  OR  =3
> .equ  DOR  =3  ;New name for OR
> .equ  PE  =2
> .equ  U2X  =1
> .equ  MPCM  =0
>  Aber das fällt mir doch mal auf die Füße wenn ich or verwenden will
> oder?

Wie der Kommentar schon andeutet. In dem Fall benutzt du
dann DOR.

Es ist keine gute Idee, dieselben Wörter in verschiedener
Bedeutung zu verwenden. Mit OR ist nun mal untrennbar die
binäre ODER-Verknüpung zweier Register verbunden. Belasse
es dabei.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ja.

An diesen Stellen im Quellcode (die ich in deinem Quellecode nicht sehe) 
solltest du DOR statt OR verwenden. Die Stellen in fremde Sourcen wirst 
su erkennen, denn der Assembler wird meckern, dass er OR nicht kennt. 
ADD: Eher doch nicht, weil es ja ein Keyword ist. Der Assembler meckert 
dann, wenn sich ein Syntaxfehler einstellt.

Dein AVR Studio ist ja eine ältere Version. Nach der 4.11 kamen noch die 
4.12 und inzwischen ist 4.13 aktuell mit inzwischen glaube ich 3 
Servicepacks seit Release. Möglicherweise wurde m16def.inc schon seitens 
Atmel korrigiert. Die 4.13 muss allerdings nicht unbedingt auf WinME 
laufen ich habe (in Verbindung mit C) Probleme mit der 4.13 auf Win98SE.

von Dirk E. (techniker01)


Lesenswert?

ja das hat mich eben auch gewundert. Ich verwende kein OR oder DOR und 
er mekkert mich deswegen an. Wenn ich es verwendet hätte wäre es mir 
verständlicher gewesen.

Gut ich werd mir mal ne neuere Version Saugen und mal schaun ob die 
m16def dort was anderes stehen hat.

von Dirk E. (techniker01)


Lesenswert?

So jetzt läuft alles. (aufdenbodenrumkugelfreu)

Vielen Dank an alle die mir hier so gut geholfen haben.

von das wesen (Gast)


Lesenswert?

Habe alles soweit eingestellt. Bei mir kommt dann aber:
"../Lauf_3.c:1:22: error: m16def.inc: No such file or directory"

von ... .. (docean) Benutzerseite


Lesenswert?

in einer .c hat das auch nix zu suchen.... rtfm

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.