Rechenzeit AVR-Studio

Hallo,

mein ATMege8535 läuft mit 2MHz und soll u.A. ein paar kleine bistabile Relais ansteuern. Das Einschalt-Signal soll ca. 100 ms anliegen, so daß ich einen "Do Nothing Loop" eingebaut habe der die 100 ms Verzögerung erzeugt. Die Simulation dieser Verzögerungsschleife dauert aber auf meinem PIII 500MHz gut 3 Minuten! Ist das Normal oder sollte ich nochmal nachrechnen ob die Schleife wirklich nur 100 ms dauert :-). Die Software ist noch nicht ganz fertig, daher kann ich es noch nicht ausprobieren.

MfG Michael

--
Michael Schlegel
Faculty of Electrical Engineering and Information Technology
 Click to see the full signature
Reply to
Michael Schlegel
Loading thread data ...

Am Wed, 09 Jun 2004 17:31:08 +0200, schrieb Michael Schlegel :

Das ist beim BASCOM-Compiler dasselbe. Wenn ich den Simulator anwerfe, muß ich vorher alle waitxxx mit rem stillegen, sonst kann ich zwischenzeitlich erstmal duschen gehen.

MfG

Frank

Reply to
Frank Scheffski

Das ist Normal. Ist beim MPLAB für die PICs auch so ;)

cu

Reply to
Thomas Graf

"Frank Scheffski" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

Mach die Schleife mal sehr viel kleiner und schau nach dem Ablauf der Schleife nach wieviel CPU-Takte abgelaufen sind. Wenn du 1 Mhz verwendest, rechnet sichs leicher..

Da kann aber etwas nicht stimmen... Auf meinem P4 2,4 Ghz laufen BASCOM-Schleifen im Simulator fast in "Echtzeit" d.h. ein "Waitms 5000" dauert ewas länger als 5 Sekunden. (Simulation eines 4433 mit 2 Mhz)

Noch ein Tip: Mit BASCOM gehts viel einfacher als in Assembler !

Reply to
Sven Sybler

Moin Michael,

das ist völlig normal. Softwaresimulatoren laufen eben nicht in Echtzeit. Wenn du irgendwann anfängst z.B. Timer- oder externe Interrupts zu benutzen kannst du den Softwaresimulator gleich in die Tonne drücken. Oder hat dein PC einen /INT0 Eingang ? Manchmal kann man irgendwelche komplizierten Stimuli Dateien für Interrupts erzeugen, aber das ist es dann auch nicht. Ob ein Audiosignal das du per PWM ausgeben möchtest auch wirklich kein Blubbern oder Knackser enthält findest du erst raus wenn du die Schaltung aufgebaut hast.

Gruß Holger

--
Dipl. Ing. (FH) Holger Klabunde
http://home.t-online.de/home/holger.klabunde/homepage.htm
 Click to see the full signature
Reply to
Holger Klabunde

Michael Schlegel schrieb:

Irgendwo im Simulator (glaube Rechts unter Prozessor oder so) hat's ne Stoppuhr... musst nur angeben dass du mit 2 MHz taktest und kannst via Breakpoints die Zeit 'stoppen'.

Gruss, Edi

Reply to
Eduard Iten

Eigentlich sollte es mit einem moderenen PC möglich sein, den AVR in Echtzeit zu simulieren. Die Simulatoren für die Spielconsolen aus den 80ern schaffen das ja schon seit Jahren. Scheint so dass der Simulator in AVR Studio nicht besonders gut optimiert ist. Eine halbe Million Befehle, um einen einzigen AVR-Befehl zu simulieren, ist aber schon ziemlich heavy. Das schafft man ja nicht mal im Basic Interpreter.

Wie auch immer. Simulatoren für Microcontroller, der ja normalerweise mit diversen Hardwareumgebungen wechselwirken, sind ohnehin nur sehr eingeschränkt verwendbar. Besorg dir doch einen JTAG ICE (Nachbauten ab 50 EUR), da kannst du den AVR in der echten Hardwareumgebung in Echzeit debuggen.

Georg

Reply to
Georg Meister

Ich glaub du hast ein paar Zehnerpotenzen übersprungen, Ich hätt gern so einen PC. Darauf würde sogar Java erträglich :-)

--
MFG Gernot
Reply to
Gernot Fink

Sofern die Angaben von Michael stimmen:

Der AVR läuft mit 2 MHz, der PC mit 500. Beide brauchen 1-2 Takte pro Befehl. Die Delay-Loop am AVR dauert 100 ms, am PC simuliert 3 Minuten. Der PC ist also 250 mal schneller und braucht trotzdem für die gleiche AVR-Routine 1800 mal so lang.

Ergebnis: 450.000 PC-Befehle pro simulierten AVR-Befehl.

Georg

Reply to
Georg Meister

Wenn du das so siehst ist es natürlich richtig. Ich ging vom echten AVR aus.

--
MFG Gernot
Reply to
Gernot Fink

"Gernot Fink" schrieb im Newsbeitrag news: snipped-for-privacy@uni-berlin.de...

um

heavy.

Der

aus.

Und warum geht das mit meinem P4 2,4 Ghz dann fast in Echtzeit ?

Reply to
Sven Sybler

Keine Ahnung. Vielleicht stimmen die Angaben von Michael nicht, seine Schleife dauert viel länger oder er hat irgendwelche Optionen falsch eingestellt.

Dein 2.4 GHz Rechner braucht jedenfalls so etwa 1000 Pentium-Befehle pro AVR-Befehl, was mir für einen geradlinig herunterprogrammierten Simulator ohne besondere Optimierungen ein realistischer Wert zu sein scheint.

Georg

Reply to
Georg Meister

Hallo,

ich hatte übersehen, daß die Warte-Schleife mehrfach (ca 15 mal) in der entsprechenden Funktion gerufen wird, als relativieren sich meine Angaben etwas. Es bleiben somit rund 10 Sekunden zur Simulation von 0.1 Sekunde im AVR, was von Echtzeit aber immer noch weit entfernt ist.

MfG und Danke für die Antworten Michael

--
Michael Schlegel
Faculty of Electrical Engineering and Information Technology
 Click to see the full signature
Reply to
Michael Schlegel

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.