Forum: Mikrocontroller und Digitale Elektronik Simulator funzt, HW nicht


von Johny_D94 (Gast)


Lesenswert?

Moinz

Ich habe die "ehre" bekommen, für ein Gravitationsmessinstrument einen 
Atmega8-16PU zu programmieren. Der Atmega8 muss alle Ausgänge wild und 
"Zufällig" durcheinander schalten. Messen tut er übrigens nichts. Das 
müssen die Kinder die damit spielen aber nicht wissen :P

Zu meinem Problem: Im AVR Studio geht alles wie es soll, nach gut 3 
Stunden Simulieren...bin ich recht zuversichtlich. Nach über 2 Stunden 
auf der Hardeware kann ich aber auch sagen dass nichts funktioniert.

Ich lade das richtige Hex-File runter, getacktet wird vom internen 4 Mhz 
Oszi, der Atmega8 ist nach meiner auffassung richtig verschaltet...

Ich habe schon einige Test Programme geschrieben. Die Ports 
funktionieren eigentlich richtig, zumindest so lange wie ich einfach ein 
Muster auf die Ports lege und dann in einen Loop gehe um nichts zu tun. 
Auch wenn ich einen Loop mache der mir immer alle Ausgänge ein und 
ausschaltet geht alles gut.

Sobald ich jedoch ein koplizierteres Programm lade, mit timmer, div. 
akrobatik im ram, blinkt immer das selbe verdammte LED an Port D2...

Ich habe jetzt unabhängig voneinander 2 Programme geschriben...alle LEDs 
dunkel ausser das an D2. Ich weiss nicht mehr wo witer suchen...im AVR 
Studio geht alles wunderbar :'(

Was kann noch falsch eingestellt sein? Mir gehen die Ideen aus....
Danke schon mal für jeden Tipp....

von Karl H. (kbuchegg)


Lesenswert?

Johny_D94 schrieb:

> Ich habe jetzt unabhängig voneinander 2 Programme geschriben...alle LEDs
> dunkel ausser das an D2. Ich weiss nicht mehr wo witer suchen...im AVR
> Studio geht alles wunderbar :'(
>
> Was kann noch falsch eingestellt sein?

Ein wesentlicher UNterschied zwischen Simulator und Realität ist, dass 
dein µC in Wirklichkeit sauschnell ist. Was im Simulator als gemütliches 
Blinken sich präsentiert (überhaupt wenn du in Einzelschritten 
durchgehst), geht in der Realität pfeilschnell.


Ansonnsten. Zurück an den Start und Programm noch einmal neu aufbauen. 
Aber diesmal gehst du so schnell es geht auf die reale Hardware und 
nicht auf den Simulator. Denn du willst in Schritten entwickeln. Kleine 
Schritte und die sofort auf der Hardware testen. Wenn dann was nicht 
geht, ist die Chance, dass dein letzter kleiner Schritt daran Schuld ist 
recht hoch. Und dann ist auch der Bereich den du auf Fehler abklappern 
musst recht klein (weil ja die Veränderung zur letzten funktionierenden 
Version klein war). Nicht so wie jetzt, wo du mit einem Monsterprogramm 
da stehst und nicht weißt, wo du mit Fehlersuche anfangen sollst.


Lehrgeld ... müssen alle 'zahlen'.

von holger (Gast)


Lesenswert?

>Was kann noch falsch eingestellt sein?

Falsche HEX Datei gebrannt. AVR Studio stellt die nicht automatisch ein.

von Johny_D94 (Gast)


Lesenswert?

Leider nein

schon 2 mal kontrolliert, habe zig versuche mit dem hex file gemacht 
aber auch einige direkt aus dem Simulator..beides Fehlanzeige..und das 
erase vorher ist eingeschaltet

von Johny_D94 (Gast)


Lesenswert?

Sorry AW von Karl Heinz Buchegger übersehen

Das mit dem gemütlichen blinken im simulator und realität.....

1.) wozu hat man den Cycel-counter und Zeit anzeige? Break-Point an die 
stelle wo aktualisiert wird, laufen lassen, Zeit aufschreiben, Laufen 
lassen, Zeit aufschreiben u.s.w.

2.) wenn es zu schnell währe, würden die leds ja leicht leuchten. ist 
aber nicht der fall. Mit dem oszyloskop aufzeichen (wenn schon ein 
schönes Digitales 4 Kanal gerade so da steht) hat gezeigt dass immer 
alle 0 sind...auser eben dieser doofe Portd2 -.-

von Karl H. (kbuchegg)


Lesenswert?

Kein Problem.

Ich weiß nicht, was du alles getestet hast und was nicht bzw. wie du im 
Simulator testest. Ich kann dir nur sagen, was erfahrungsgemäss die 
meisten Ursachen sind.

Im übrigen hab ich alles zu dem Thema gesagt. Du kannst gerne noch 2 
Tage mit Fehlersuche verbraten. Oder aber nochmal anfangen und diesmal 
schrttweise mit Prgorammentwicklung und der echten Hardware arbeiten.

von Karl H. (kbuchegg)


Lesenswert?

ACh ja

>  der Atmega8 ist nach meiner auffassung richtig verschaltet...

... das haben schon viele gesagt.
Fangen wir an: 100nF Blockkondensatoren an den Versorgungsspannungspins?

von holger (Gast)


Lesenswert?

>>  der Atmega8 ist nach meiner auffassung richtig verschaltet...
>
>... das haben schon viele gesagt.
>Fangen wir an: 100nF Blockkondensatoren an den Versorgungsspannungspins?

AVCC angeschlossen? Beide GND angeschlossen?

Und zeig dein Programm. Dann muss keiner mehr raten.

von Johny_D94 (Gast)


Lesenswert?

Tja...hardware heute bekommen, morgen muss es funzen.

Ich bin Automatiker Azubi und arbeite eigentlich mit SPS und CNC 
Steuerungen und habe beruflich mit Assembler und MC nichts am Hut. Ich 
bin es gewohnt dass auf die Simulatoren verlass ist (Gut möglich dass 
manche "Notfall" Situationen nie getestet werden können)

Schade dass das bei AVR nicht der fall ist. Habe stepp by Stepp 
programmteile übersprungen bis ich den fehler hatte..wisso dieser nicht 
geht ist mir zwar ein rätsel. Aber bei einer Steuerung die mit 
pseudo-Zufall arbeitet..kann man ja ruhig einen Teil rauslöschen ohne 
das nichts mehr geht..hat dann einfach einen grössere wiederholungs 
wahrscheinlichkeit..na ja..egal

Schaltung passt....er geht ja nun ;)

Programm...hätte ich hochgeladen sobald alles ausreichend komentiert 
gewesen währe ;) Na ja..wenn ich in dem Teil der Zicken macht keinen 
Fehler finden kann lade ich es ev. noch hoch.

Danke trozdem für alle vorschläge

von Spess53 (Gast)


Lesenswert?

Hi

>Schade dass das bei AVR nicht der fall ist.

Die AVR-Simulatoren haben ein paar Probleme bei der Behandlung von 
IO-Komponenteten (PWM-Modi, U(S)ART, SPI). Dazu gibt es entsprechende 
Hinweise in der Hilfe zum Simulator (Known Issues). Code, der nicht auf 
diese Hardware zugreift wird nach meinen (jetzt ca. 15 jährigen) 
Erfahrungen mit AVRs exakt abgearbeitet.

In Hinsicht auf

>Ich bin Automatiker Azubi und arbeite eigentlich mit SPS und CNC
>Steuerungen und habe beruflich mit Assembler und MC nichts am Hut.

halte ich einen Programmierfehler für die wahrscheinlichere Variante.

MfG Spess

von Peter D. (peda)


Lesenswert?

Johny_D94 schrieb:
> Schade dass das bei AVR nicht der fall ist.

Ob der Simulator Dein Problem ist, kann man erst sagen, wenn man den 
Quelltext kennt. Ich vermute, eher nicht.

Es gibt viele mögliche Fehlerquellen, gerade in Asssembler, die hat 
keiner Lust, alle aufzulisten.

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.