Moin, die Suche brachte mich nicht weiter ... also daher jetzt hier folgende Frage: Ich benutze (seit wenigen Tagen, bin also noch recht grün) WINAVR GCC im AVRStudio 4. Wenn ich dort den Simulator benutze und im Programm Zeitschleifen habe, dauert das natürlich ziemlich lange. Der Simulator ist verständlicherweise im RUN-Mode nicht so schnell wie das Ziel-System (ATmega48). Daher ändere ich, wenn ich simulieren will, vorher einige Werte bzw. setze sie zurück, wenn ich das Programm in den Atmega übertragen will. Gibt es eine Möglichekit (#ifdef ???) im GCC zu erkennen, ob man im Simulator ist ? Dann könnte ich nämlich davon abhängig die Werte für beide Arten einstellen. Und würde nicht jedesmal dumm schauen, wenn im Zielsystem nichts funktioniert, weil ich vergessen habe, die Werte wieder umzusetzen. Vielen Dank Gruß aus Hamburg Andree
Andree Stolze schrieb: > Gibt es eine Möglichekit (#ifdef ???) im GCC zu erkennen, ob man im > Simulator ist ? Nein. Denn wenn das Programm compiliert wird, steht ja noch nicht fest wo es läuft. Und ein Simulator soll sich möglichst identisch zur realen Hardware verhalten > Dann könnte ich nämlich davon abhängig die Werte für > beide Arten einstellen. Und würde nicht jedesmal dumm schauen, wenn im > Zielsystem nichts funktioniert, weil ich vergessen habe, die Werte > wieder umzusetzen. du kannst dir ja selber ein #define machen und alle Dinge davon abhängig machen. Dann ist es mit dem auskommentieren eines #define getan um den Code umzustellen. Automatisch gehts dann zwar immer noch nicht, aber zumindest deutlich angenehmer.
Hallo, vielen Dank erstmal. >Nein. >Denn wenn das Programm compiliert wird, steht ja noch nicht fest wo es >läuft. >Und ein Simulator soll sich möglichst identisch zur realen Hardware >verhalten Nein, natürlich nicht. Aber es hätte ja sein können, dass der Studio-Simulator beim Start irgend etwas setzt, das man hätte abfragen können. >du kannst dir ja selber ein #define machen und alle Dinge davon abhängig >machen. Dann ist es mit dem auskommentieren eines #define getan um den >Code umzustellen. Automatisch geht Das ist allerdings ein Vorschlag, auf den ich auch selbst hätte kommen können .... :-(( Danke ! A.
Informier dich doch mal über Proteus ISIS. Ist ein Schaltungssimulator, der ein Plugin fürs AVR-Studio mitbringt. Du kannst deine komplette Schaltung inklusive AVR aufbauen und dann aus dem AVR-Studio per Proteus voll debuggen. Sprich: Breakpoints, Register lesen, Variablen beobachten, Single Step, uswusf. Zusätzlich kann Proteus Breakpoints einbauen. Z.B. wenn eine Spannung überschritten, eine Zeit abgelaufen oder der Wert einer Variable verändert ist. Uswusf. Ein geniales Tool, das den vollen Funktionsumfang in der Demo mitbringt. Allerdings kann man nicht speichern. Den PC also nicht ausschalten, sondern nur in Powerdown fahren und das Problem ist "umgangen".
Michael H. schrieb: > Informier dich doch mal über Proteus ISIS. Das hat doch aber mit seinem Problem nun rein gar nichts zu tun. Die vorhandenen Warteschleifen brauchen dann trotzdem noch ewig.
Du kannst ja einen nicht benutzten I/O Pin abfragen - in der Schaltung ist er auf Masse, im Simulator legst du ihn (virtuell) auf High. Dann kann dein Programm entsprechend reagieren. Viele Grüße, Mirko
Jörg Wunsch schrieb: > Das hat doch aber mit seinem Problem nun rein gar nichts zu tun. Naja, das "rein gar nichts" will ich mal bestreiten. - Der TO will simulieren, sonst hätte er die Schaltung aufgebaut. - Der Simulator im AVR-Studio ist weit von Echtzeit weg. Proteus kann Echtzeit. Die Vermutung, dass eine reale Warteschleife in Echtzeit abwartbar ist, ist nicht verwegen. Ja, meine Antwort hat wenig mit dem Betreff zu tun, ich bin aber trotzdem der Meinung, dass sie dem TO helfen kann.
Michael H. schrieb: > - Der Simulator im AVR-Studio ist weit von Echtzeit weg. Das kannste aber laut sagen. Ein uralter 8051-Simulator, war zwar in DOS, lief aber schon auf nem 100MHz Pentium in Echtzeit (8051 bei 12MHz). Warum das heutzutage bei 3GHz nicht mehr gehen soll, ist mir ein Rätsel. Peter
Michael H. schrieb: > - Der Simulator im AVR-Studio ist weit von Echtzeit weg. Wieso? Er braucht eben echt Zeit zum Simulieren ;-)
Michael H. schrieb: > Proteus kann > Echtzeit. Nun, dann hättest du vielleicht genau dieses Feature in deinem Beitrag nennen sollen, statt allerlei Dinge, nach denen der OP nicht gefragt hatte. ;-) Ist natürlich richtig, auf diese Weise kann man das Problem durchaus auch lössen.
Ja, da muss ich dir Recht geben. Ich bin nur immer wieder mal (zu) begeistert von dem Tool.
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.