Simulator AVR-Studio

Gast #1740987
Lesenswert?

Hallo,

Ich arbeite mit AVR Studio V 4.18.
Ich versuchte mich mit timer0 von Atmega128 vertracher machen und 
verschiedene Einstellungen testen.
Quekllcode ist einfach :

#include <avr/io.h>

void init_t0(void)
{
  TCCR0 = (1 << WGM01) | (1 << CS01) | (1 << CS00);
  OCR0 = 114;
}

int main (void)
{
  init_t0();

  while(1)
  {;}
  return 0;
}
Aber wenn ich den Simulator mim Autostep starte steht der gelbe Corsur
in die Funktion init_to() beim zweitenZeile und bewegt sich nicht mehr.
Ich wollte dabei  das Verhalte der Timer0 Register betrachten.
Aber der Simulator steht und läuft nicht weiter genauso bei (step over 
F10)

Wenn ich F11 (step into) wähle dann verschwindet der gelbe Corsur und es 
passiert gar nicht.

any idea??

danke
Angehängte Dateien:
Gast #1741007
Lesenswert?

Das ist einfach!
Das Kommando "while(1) {};" läuft im Kreis, somit kann der Simulator 
auch nichts mehr anzeigen. Ein Kommando in der "while" Schleife würde 
dem Simulator wieder einen Anhaltspunkt "Breakpoint" geben und man sieht 
wie der Timer hoch zählt.
Man kann auch einfach das Assembler Fenster öffnen und sieht dann, dass 
der Simulator nicht steht, sondern fleißig im Kreis läuft.
Für den Simulator sind "while" Schleifen immer sehr schwierig zu 
behandeln.

MfG
Heiko
#1741406
Lesenswert?

frage schrieb:
> Danke spess53,
>
> Im Disassembler-Window läuft der Simulator, aber ((warum)) läuft er
> nicht
> in C-Quellcode?

Der Simulator simuliert die Hardware des AVRs. Diese kann aber kein C. 
Also kann der Simulator keinen (unübersetzten) C-Code simulieren, sonder 
nur den compilierten Maschinencode, der nur in ASM sinnvoll angezeigt 
werden kann.

> der Cursor soll sich im C-Code im while-Schleife aufhatlen. !!

Sonst noch Wünsche?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren