Forum: Mikrocontroller und Digitale Elektronik Timing Simulation eines ATmega48


von DurinV (Gast)


Lesenswert?

Hi Leute,

ich habe mit dem GCC Compiler ein Programm geschrieben und wollte nun
gerne wissen wie lange der ATmega48 mit dem Internen 8MHz Quarz (bitte
korrigiert mich wenn das falsch ist) für dieses Prog benötigt.
Nun zu meiner eigentlichen frage:
Gibt es im AVR-Studio eine Möglichkeit (oder mit dem GCC-Compiler) sich
ein timing Diagramm/Tabelle widergeben zu lassen?

Gruß
   DurinV

von ¹²³ (Gast)


Lesenswert?

Nein, du kannst dir aber die Anzahl der Takte und die Zeit anzeigen
lassen, die z. B. eine bestimmte Funktion benötigt. Ist glaube ich
links bei CPU :)

von Cathrel (Gast)


Lesenswert?

Das AVR Studio hat eine Stopuhr mit dieser kann die Zeit vom einten
Breakpoint zum anderen gemessen werden. Den Takt den zur Messung
verwendet werden soll kannst du unter Debug/Simulator Options
einstellen. Mit F9 kannst du Breakpoints setzen. Mit F5 das Programm
laufen lassen. Die gemessene Zeit kann im Tab I/O bei Processor(auf
Plus klicken) Stop Watch abgelesen werden. Nicht vergessen vor der
Messung die Stop Watch mit dem doppelklick auf eben jenes Wort auf Null
zu stellen.

von DurinV (Gast)


Lesenswert?

Hi Leute,

Danke schon mal. Nun habe ich nur noch das Problem, das mein programm
auf das setzten von ports wartet. Gibt es vileicht auch hier eine
möglichkeit dies zu Simulieren? Wenn ja könntet ihr das vileicht etwas
ausfühlicher beschreiben (ungefähr so ausfühlich wie schon die Antwort
auf das Ablesen der Simulationszeit).

Gruß
   DurinV

von ¹²³ (Gast)


Lesenswert?

#define DEBUG

...

int WarteAufPort(void)
{
   #ifdef DEBUG
      return 1;
   #elseif
      while(!BitIsSet(PIND,1));
      return 1;
   #endif
}

Ich denke, es ist klar, oder? Also wenn DEBUG definiert ist, tust du
einfach so, als ob jetzt z. B. PIND.1 gesetzt ist. Die Funktion (hier
nur als Beispiel) liefert eine 1 zurück. Ansonsten, wenn DEBUG nicht
definiert ist, wartet die Funktion eben so lange, bis PIND.1 auf 1 geht
und liefert erst dann den Wert1 zurück.

von Cathrel (Gast)


Lesenswert?

Im I/O Tab siehst du noch einen weiteren Baum mit dem Namen "I/O [dein
Prozessor)]".
In diesem befinden sich die Ports, wenn du diese öffnest siehst du
PORTX, DDRX, PINX (X ist der PORT). Dort siehst du Felder, setzt du in
diesen das Häkchen ist das betreffende Bit gesetzt, sonst nicht.

von DurinV (Gast)


Lesenswert?

Ich habe mal gehört, das es bei dem AVR-Studio eine möglichkeit gibt,
eine Datei bei der Simulation mit anzugeben, die die Ports überwacht.
Wäre es nicht auch damit möglich die Ports so zu definieren um eine
Simulation ohne das manuelle setzten der Ports zu ermöglich. sonst
müßte ich auf die Variante von ¹²³ zurückgreifen was mir aber meine
timing simulation verfälscht.

DurinV

von Cathrel (Gast)


Lesenswert?

Ja, dies ist möglich mit einem Stimuli-File. Dieses musst du auch bei
den Simulatoroptions angeben.

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.