Forum: Compiler & IDEs AVR: Fehlerhafter Simulator


von Franz Josef M. (arras)


Lesenswert?

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
von Felix U. (ubfx)


Lesenswert?

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.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von Franz Josef M. (arras)


Lesenswert?

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 !

von S. R. (svenska)


Lesenswert?

Ä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.

von Franz Josef M. (arras)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Amateur (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.