www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Simulation beschleunigen? AVR-Studio so langsam


Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche nach einer Möglichkeit das debuggen im AVR-Studio zu
beschleunigen. Es ist halt so das wenn man sein Programm im AVR-Studio
laufen lasst die Schleifen sehr langsam ablaufen obwohl ich nen sehr
schnellen Rechner habe. Weiß jemand obs da ne Möglichkeit gibt das
ganze zu beschleunigen, da ich keine Lust mehr habe ständig den AVR neu
zu flashen und dann wieder an Oszi hängen um dann zu sehen es passt
nicht und wieder neu flashen.

Früher gabs ja nen einzelnen Softwaresimulator dieser war wesentlich
schneller wie das im AVR-Studio. Sollte man vielleicht wieder darauf
umsteigen?

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wo wir schon beim Theme Geschwindigkeit sind fallen mir gerade noch 2
Fragen ein.

1.Kann man mit dem STK  500 den Takt verändern damit das Programm
langsammer läuft um z.b. saubere Signale am Oszi zu bekommen?

2. Läßt sich sonst irgendwie ein interner Taktteiler verwenden um den
AVR langsamer laufen zu lassen trotz z.b. eines 8MHz Quarzes? Wie z.b.
bei den Timern.

Autor: Denis Gérard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin, also wenn die schleifen als unterroutinen aufgerufen werden kannst
du diese mit F10 step over quasi überspringen

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja es sind unterroutinen werde das mal probieren. Hat das Verstellen
der MHz Einstellung eine Auswirkung?

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habs jetzt so gelöst einfach ein Semikolon vor die 2te
Verzögerungsschleifen zu setzten. So Springt das Programm nach dem
druchlauf der ersten Schleife weiter. Werde das demnächst mit den
Timern ausprobieren. Damit nicht das ganze Programm gebremst wird.
Obwohl man für so ne simple Impulsfolgenausgabe 58xHigh,
5xLow,58xHigh.... auch einfach nen Billigen AVR nehen kann.

warte120: dec delay4
brne warte120
;dec delay5
;brne warte120

Kann mir jemand sagen welche AT's nen internen Oszillator haben um
eine Schaltung mit möglichst wenigen Bauteilen hinzubekommen (also 5V
anschließen und los) es würden 4 I/O's ausreichen.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die mega's haben auf jeden fall einen intern drin.
für dich dürfte aber auch ein 1200 reichen der hat glaub ich auch einen
intern

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und ich habe mal irgendwo gelesen das der erst aktiviert werden muss.
Kann man das mit dem STK500 machen da ich mir das auch noch zulegen
will.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du kannst auch einfach den Programmzähler auf den nächsten Befehl NACH
einer Warteschleife setzen.

Gruß

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kannst du das kurz erklären? Ich hab noch ne andere Möglichkeit
gefunden man setzt einen Breakpoint und läßt das ganze nicht im
Autostepmodus laufen sondern startet mit Run, man muss sich dann halt
immer den µSZähler anschauen und weiß genau wie lange das jetzt
gedauert hat.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"und ich habe mal irgendwo gelesen das der erst aktiviert werden muss.
Kann man das mit dem STK500 machen da ich mir das auch noch zulegen
will."

ich glaub der ist standardmässig aktiviert. sonst kannst du mit dem
stk500 alles einstellen woran andere programmer verzweifeln. damit ist
man immer auf der sicheren seite (musste mit meinem stk500 auch schon
einige fusebit opfer reanimieren :)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die Sache mit dem Breakpoint bringt auch schon eine Beschleunigung,
wenn man z.B. nur ein Unterprogramm "überspringen" möchte. Alle
Befehle des Unterprogramms werden dabei ausgeführt.

Mein Vorschlag mit dem Vorstellen des Programmzählers ist nur zulässig,
um z.B. die Initialisierung eines LCDs oder eine Warteschleife zu
überspringen, wenn man sie nicht auskommentiert hat. Das darf man aber
nur, wenn sicher ist, daß der übersprungene Programmteil keine
wichtigen Registerinhalte verändert, die danach wieder gebraucht
werden.

Gruß

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also danke nochmal, komme immer besser mit klar, was einige Sachen doch
enorm das Programm beschleunigen. Habe sonst jeden Pin einzeln auf HIGH
gesetzt jetzt mache ich das mit "ser temp" und übergebe das an PortA
"out PortA, temp".

Der 80515 was im STK500 steckt ist doch dazu da die ganze Komikation
zur Zielhardware zu übernehmen oder? Hab mich immer gewunder wie man
mit einer Seriellen Schnittstelle parallel programmieren kann, aber
anscheinend erledigt das der 80515er.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann ganz einfach über AVR-Studio den Takt des STK500 einstellen:
Siehe Seite 3-20 des Handbuchs

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
macht euch nen macro debug in dem ein ret ausgeführt wird. das schreibt
ihr an die erste stelle in euren wait routinen.
wollt ihr debuggen steht das ret in der routine; wollt ihr compilen
comentiert ihr das ret aus

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man das nicht mit ifdef anweisungen machen?

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da könnte ich aber gleich die Warteroutine ausklammern z.b.
;rcall warte.

Es haut jetzt aber alles schon so hin wie es soll.

Also danke nochmal an alle.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du mehr als einen warteroutinen aufruf hast, wird´s aber lästig
alle einzeln auszuklammern. und im avr kostet es keine resourcen.

hab den thread garnicht richtig gelesen. war nur nen einfall, der bei
mir geholfen hat. :)

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

jetzt beim 2ten lesen hab ich verstanden.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, war auch wirklich kurz gefasst :)

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@henning:
ifdef anweisungen kosten auch nix an ressourcen und sieht elleganter
aus :)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt, hab grad nachgesehen. als ich mir meinen weg ausgedacht hab
fehlten die ifdef´s im avrstudio noch

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.