Forum: Compiler & IDEs Problem mit AVR Studio Simulator - Attiny13


von t0mM3k (Gast)


Lesenswert?

Hallo an alle,
ich wollte mich mal an die µC Programmierung wagen. Bin relativ neu in 
der Thematik und wollte mit einem Hello World Programm für einen 
Attiny13 anfangen:
1
#include <avr/io.h>
2
#include <avr/iotny13.h>
3
#include <util/delay.h>
4
5
void main(void){
6
  DDRB = 0b00000001; //PB0 auf Output setzen
7
  while(1){
8
    PORTB = 0b00000001; //LED ein
9
    _delay_ms(500) //halbe sec warten
10
    PORTB = 0b00000000; //LED aus
11
    _delay_ms(500) //halbe sec warten
12
  }
13
}
Nun wollte ich es im Simulator von AVR Studio (v. 5.0) testen, aber er 
läuft einfach nur durch, und setzt nicht ein einziges Register. 
Simulator ist aber auf Attiny13 eingestellt.

Wenn ich das gleiche mitm Atmega8 mache, dann funktioniert es im 
Simulator. Hat jemand ne Idee???

von Peter II (Gast)


Lesenswert?

und für was ist es compiliert?

#include <avr/iotny13.h>

schreibt man nicht rein

von t0mM3k (Gast)


Lesenswert?

Verstehe die Frage nicht für was es kompiliert ist. Das Programm soll so 
auf n ATtiny13. Ich gehe davon aus, dass AVR Studio das schon richtig 
kompiliert.

Warum schreibt man das include nicht mit rein? (Abgesehen davon, dass es 
einen Schreibfehler beinhaltet ;) ) Reicht es, wenn <avr/io.h> drin ist, 
und dann sucht sich AVR Studio selbst die Headerdatei für den 
entsprechenden Chip?

LG

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


Lesenswert?

t0mM3k schrieb:
> Reicht es, wenn <avr/io.h> drin ist,
> und dann sucht sich AVR Studio selbst die Headerdatei für den
> entsprechenden Chip?

Ja.

Ein 500-ms-Delay ist im Simulator eher eine Art Endlosschleife.
Mach die Delays für die Simulation mal 10 µs lang und schau dir
das alles an.  Für die reale Hardware kommen dann wieder die
richtigen Werte rein.

von t0mM3k (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Ein 500-ms-Delay ist im Simulator eher eine Art Endlosschleife.

Ja das weiß ich. Habe vor einem Jahr schonmal n bisschen was mit AVR 
Studio gemacht und immer alles im Simulator getestet. Dass man bei dem 
delay n bisschen warten muss, das weiß ich. Ich gehe ja sowieso nur 
schrittweise durch den Code und schaue mir an, ob die Register gesetzt 
wurden.

Und wie gesagt ... schreibe ich das Programm so für den Atmega8, 
funktioniert alles prima (auch im Simulator). Nur der ATtiny13 will 
nicht.
Kann das ein Bug in AVR Studio 5 sein?
Habe mir das vor nem Jahr mal runtergeladen, und habs gestern Abend auf 
meinem Notebook "wiedergefunden". Darum hab ich damit programmiert.
Ich versuch mal mir AVR Studio 6 runterzuladen.

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


Lesenswert?

t0mM3k schrieb:
> Kann das ein Bug in AVR Studio 5 sein?

Kann natürlich immer mal passieren, gerade der alte Simulator hatte
wohl doch einige Bugs.

Im Zweifelsfalle ist die Realität der Prüfstein der Wahrheit: also
drauf damit auf einen ATtiny13 und die blinkende LED angesehen. ;-)

von t0mM3k (Gast)


Lesenswert?

Okay ... das neue AVR Studio (also 6) kriegt das mit dem simulieren 
wunderbar hin.

Jörg Wunsch schrieb:
> Im Zweifelsfalle ist die Realität der Prüfstein der Wahrheit: also
> drauf damit auf einen ATtiny13 und die blinkende LED angesehen. ;-)

Ja, wollte ich ja, aber hab meinen USB-Programmer verlegt und der neue 
ist bestellt, aber noch nicht da.
Aber solange der Simulator funzt kann ich ja damit rumspielen.

Bis dahin erstmal 1000 Dank an alle Helfenden :)

von MWS (Gast)


Lesenswert?

t0mM3k schrieb:
> Okay ... das neue AVR Studio (also 6) kriegt das mit dem simulieren
> wunderbar hin.

Das ist auch in Studio Ver 5.1 kein Problem, 5.0 konnte ich nicht 
testen.

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.