Hallo lb. AVR-Freunde, seit einiger Zeit schlage ich mich mit dem Simulator unter Studio 7 herum. Ich habe eine Datei mit ADC-Befehlen, die in tastatur () vorkommen. Hier wird - nach der Init-Routine (while ADCSRA & (1<<ADSC))- der ADC untersucht, ob er folgene Werte beinhalten muß. Der Simulator aber hat 0-Werte. Der Monitor sagt "0-Werte", aber mit dem Oszi kann ich die Veränderung sehen. Wie kann ich prüfen, ob das Programm ordentlich arbeitet ?.. Hier meine Hardware: Atmega 168PA, 32 Pin, 8 Mhz Hat einer ähnliche Sachen festgestellt - oder ist mir ein Fehler unterlaufen ... Gruß arras !
:
Verschoben durch User
Redest du tatsächlich vom Simulator oder vom Debugger? Im ersten Fall handelt es sich um eine Simulation, sie wird nicht auf der Zielhardware ausgeführt.
Hi Im Simulator musst Du die ausgelesenen ADC-Werte auch simulieren - also die Register so setzen, wie Das in der Realität auch passiert. So kannst Du Grenzfälle abtasten (Versorgungsspannung unterschreitet ein gewisses Level, oder sonst was). MfG
Entschuldigng, mein Fehler, es muss ja Debugger heißen. Ich muß ja die Werte in die Datei I/O, Bereich "Analog in Digital Converter" für den ADC vorlegen, um eine Auswertung zu erreichen. Eine Simulation ist das nicht, aber ich war wohl etwas zu schnell mit meinem "Wunschdenken". Gibt es überhaupt für diesen Micro ein passendes Programm mit Vorgaben, so wie ich mein Zielprogramm testen kann ? Nochmals Entschuldigung für die falsche Bezeichnung ! mfg arras !
Äh, bist du sicher, dass du weißt, was du meinst? Der Simulator führt deinen Code auf dem PC aus. Du kannst die ADC-Werte aus einer Datei nehmen, bzw. musst sie selbst eingeben. Ein vorhandener AVR wird nicht benutzt. Der Debugger führt deinen Code auf dem AVR aus. Die ADC-Werte kommen direkt von der Hardware, eine eventuell vorhandene Datei wird nicht benutzt. Ein AVR ist dagegen zwingend notwendig.
Also, ich weiß was ich meine, wenngleich ich mich so fürchterlich ausdrücke, das kommt von meinen Schlaganfall, den ich vor mehr als 20 Jahren "erlitten" habe. Zu dem eigenlichen Problem: Ich habe ein Programm vor mir, das u.a. eine Tastatur-Eingabe über einen Pin (PIN C, PC 1) einlesen soll. Dazu gibt es einen Wert an PC1 ab, der über einem Widerstand unterschiedlichen Wert ab, je nach dem, welsche Taste betätigt wurde. Am PC1 liege dann eine Spannung an von 4 Volt bis 3,0 Volt. Diese Spannung wird an den ADC (ADV0) weitergeleitet und dient dazu, über ein kleines Programm (tastatur (zn))eingelesen zu werden. An Messmittel steht mir ein Oszi (SIGLENT SGS 1102CNL) zur Verfügung. Wenn ich nur den Wert - ohne das Programm "tastatur " - bearbeite, sehe ich an meinem Oszi einen Spannungspegel an, der genau dem eigentlichen Wert entspricht. (Anzeige: über Pin PD1 als Ausgang) Dazu den Code: Initroutine, dann: ADC > 500 und WERT unter dem Pegel: Spannung: 0 Volt und oberhalb dem Vergleichswert: Spannung VCC. So weit, so gut. Wenn ich dann die Tastaturroutine einbringe, sieht es folgendmaßen aus: a) Progamm "test_3", den Pegelwächter mit ADC, gut- wie bisher. b) Programm "tastatur (zn)". Gleiches Init, dann: wert = ADC; High über die gesamte Laufzeit des Programms, obgleich die Pegelanzeige eingebunden ist. Natürlich ist dies kein Simulatur, sondern ein Debug-Programm, wenn gleich ich Werte eingeben kann, die dann für einen Umlauf Gültigkeit haben. (ADC-Werte z.B.) Was mich stört: Warum zeigt der Regelwandler über die Anzeige PD1 an, das Tastaturprogramm aber nicht. (Gleiche Routine !) A propo: Wie kann ich den Programmcode beilegen, es ist kein PDF-Format ? Ich habe mich bemüht "verständlich" zu machen, trotz Schlaganfall. Gruß arras
Franz Josef M. schrieb: > Wie kann ich den Programmcode beilegen, So, wie er ist, einfach als Datei anhängen. Wenn es z.B. *.c ist, bietet das Forum "automagisch" eine Quelltextanzeigefunktion an.
>Gibt es überhaupt für diesen Micro ein passendes Programm mit Vorgaben, >so wie ich mein Zielprogramm testen kann ? Definitiv: Nein! Es geht ja nicht um irgendeinen Standard, sondern um DEIN Programm. Im Übrigen sollte Dir auch bekannt sein, dass ICH andere Anschlüsse verwende und andere Abfragen usw. habe. Selbst, wenn zwei verschiedene Personen, auf derselben Hardware, das gleiche Problem lösen, wäre es verwunderlich wenn "Einheitsvorgaben" funktionieren würden.
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.