Simulator funzt, HW nicht

Gast #3228437
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....
#3228446
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'.
Gast #3228474
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 -.-
#3228478
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.
Gast #3228499
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.
Gast #3228530
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
Gast #3228615
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren