Forum: Compiler & IDEs AVR Studio 6 Simulator


von Tom (Gast)


Lesenswert?

Hallo allerseits!

Ich bin dabei, die Programmierung eines Microcontrollers in C zu 
erlernen. Dazu habe ich AtmelStudio 6 heruntergeladen um mit dem 
Simulator schauen zu können, ob das Programm sinnvolles leistet.

Die Vorangehensweise:
1.) New Project: GCC Cexecutable project
2.) Atmega 1281 wählen
3.) Unter Tool simulator einstellen
4.) Build solution
5.) Start debugging and break
7.) continue

Dann passiert nichts mehr. Nachdem ich "break all" tätige, lande ich in 
der delay.h- Datei in der Zeile, wo 
"__builtin_avr_delay_cycles(__ticks_dc);" steht.

Ich weiß, dass der Simulator sehr langsam ist. Deshalb habe ich die 
Wartezeit sehr gering eingestellt.

Hier mein Noobcode:
1
#define F_CPU 7372800UL
2
#include <util/delay.h>
3
#include <avr/io.h>
4
5
6
int main(void)
7
{
8
  
9
  DDRC|=(1<<PC1);
10
  PORTC=(1<<PC1);
11
    while(1)
12
    {
13
    
14
    PORTC&=~(1<<PC1);
15
  _delay_ms(1);
16
  PORTC|=(1<<PC1);
17
  _delay_ms(1);     
18
    }
19
  return 0;
20
}

Weshalb funktioniert der Simulator nicht? Liegt es an der Programmierung 
oder muss ich zusätzlich vorher irgendwelche Einstellungen durchführen?

Bin allen dankbar, die mir helfen würden!
MFG der Tom

: Gesperrt durch Moderator
von Peter II (Gast)


Lesenswert?

Tom schrieb:
> Weshalb funktioniert der Simulator nicht? Liegt es an der Programmierung
> oder muss ich zusätzlich vorher irgendwelche Einstellungen durchführen?

wie kommmst du darauf das er nicht funktioniert? Wenn du Breaks macht, 
dann steht der code zu 99.999% in der Delay Funktion, das ist doch bei 
dem code normal.

von Tom (Gast)


Lesenswert?

Hallo Peter,

nur kann ich leider im IO-View Fenster das Blinken des Pins nicht 
beobachten. Deshalb habe ich vermutet, dass es nicht funktioniert.

...
DANKE für den Tipp! Habe zu jeder Zeile einen Breakpoint gesetzt und 
kann jetzt beobachten, dass der Pin gesetzt wird.

von Dirk H. (dirk242)


Lesenswert?

Hab irgendwie das gleiche Problem. Hab vorher mal mit ´nem Motorola 
MC68HC11 was gemacht (allerdings in Asembler). Dazu gab´s einen 
Simulator, der mir dann auch tatsächlich angezeigt hat, was der mc 
machen würde.
Mit dem Atmel Studio 6 krieg ich das bei keinem Beispielprogramm hin 
grrrmpf

Was mache ich falsch?

Meine Vorgehensweise ist ähnlich wie die weiter oben:

1.) New Project: GCC Cexecutable project
2.) ATtiny2313 wählen
3.) Unter Tool simulator einstellen
4.) Build solution
5.) Start debugging and break?
6.) Continue?
7.) Wo ist die "PLAY"-Taste?

Danke im Voraus für eine Antwort!

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


Lesenswert?

Dirk H. schrieb:
> Hab irgendwie das gleiche Problem.

Nein.  Der TE hatte ein Problem mit seinen Delays (die in der Tat
schweinelangsam simulieren, sodass man sie für die Simulation am
besten weglässt).

Du hast ein komplett anderes Problem, also eröffne bitte dafür einen
eigenen Thread mit einer möglichst präzisen Überschrift.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.