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?
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.
moin, also wenn die schleifen als unterroutinen aufgerufen werden kannst du diese mit F10 step over quasi überspringen
Hallo, ja es sind unterroutinen werde das mal probieren. Hat das Verstellen der MHz Einstellung eine Auswirkung?
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.
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
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.
Hallo, Du kannst auch einfach den Programmzähler auf den nächsten Befehl NACH einer Warteschleife setzen. Gruß
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.
"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 :)
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ß
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.
Man kann ganz einfach über AVR-Studio den Takt des STK500 einstellen: Siehe Seite 3-20 des Handbuchs
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
kann man das nicht mit ifdef anweisungen machen?
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.
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. :)
Hallo, jetzt beim 2ten lesen hab ich verstanden.
@henning: ifdef anweisungen kosten auch nix an ressourcen und sieht elleganter aus :)
stimmt, hab grad nachgesehen. als ich mir meinen weg ausgedacht hab fehlten die ifdef´s im avrstudio noch
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.