Forum: Mikrocontroller und Digitale Elektronik ATmega32, gleicher Programmcode,unterschiedliche Werte


von Sven (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem:

Habe zwei Leiterplatten,die exakt gleich bestückt sind. Auf der 
Leiterplatte befindet sich jeweils ein ATmega32. Mit diesem lese ich 
zwei Sensoren aus, deren beider Werte ich zu einem Endwert verarbeite 
und mir über Uart ausgeben lasse.
Auf beiden ATmega32 befindet sich der gleiche Programmcode.

Die Werte, die ich mir ausgeben lasse, werden interruptgesteuert 
entweder aller 5 Sekunden oder aller einer Sekunde ausgegeben. Dies kann 
ich per Uart-RX-Befehl an den ATmega32 variieren.

Nun das Problem:

Mit der einen Leiterplatte funktioniert meine Endwertausgabe, ganz 
gleich ob die Werte nach einer Sekunde oder aller 5 Sekunden kommen.

Bei der anderen Leiterplatte ändert sich mein ausgegebener Endwert je 
nach Ausgabezeit!!!


Nochmals: Beide Leiterplatten sind gleich bestückt und es ist derselbe 
Programmcode drauf.


Was kann da der Fehler sein???

Programmiere mit AVR Studio5 und JTAGICE III.

Danke schonmal,Sven.

von nicht "Gast" (Gast)


Lesenswert?

Bauteiltoleranzen

von Oliver (Gast)


Lesenswert?

Der Fehler steckt entweder in Zeile 42 des Sourcecodes, oder im Bauteil 
42 auf der Platine.

Es kann aber auch Sensorfehler 42 sein, oder du hast dein Handtuch 
vergessen...

Oliver

von Justus S. (jussa)


Lesenswert?

auch gleiche Fuses?

von Sven (Gast)


Lesenswert?

@ Oliver: Was haben wir gelacht!

@ Justus Skorps: Ja, die Fuses sind gleich gesetzt.Dachte anfangs auch, 
dass es evtl. daran liegen könnte.

von Bob (Gast)


Lesenswert?

Schon mal die Sensoren getauscht, "wandert" der Fehler
dann zur anderen Baugruppe? Ggf. die Sensorsignale
durch z.B. Spannungsquelle ersetzen?

Schaltest Du die Ref. zwischen den Messungen um?
Dann kann es, wenn man nicht lange genug wartet
zu sehr interessanten Effekten kommen.

von Düsendieb (Gast)


Lesenswert?

Sven schrieb:
> @ Oliver: Was haben wir gelacht!

Was er sagen wollte ist, dass Dein Code vieleicht nur wegen günstiger 
Bauteiltoleranzen funktioniert. Aber da wir ihn nicht kennen, ist 
Hilfestellung schwierig

von Justus S. (jussa)


Lesenswert?

Sven schrieb:
> @ Oliver: Was haben wir gelacht!

wenn du Code & Schaltung geheim hälst, was erwartest du da als Antwort? 
Da bleibt nur die 42 als ultimative Antwort...

von Sven (Gast)


Lesenswert?

Düsentrieb schrieb:

>Was er sagen wollte ist, dass Dein Code vieleicht nur wegen günstiger
>Bauteiltoleranzen funktioniert. Aber da wir ihn nicht kennen, ist
>Hilfestellung schwierig

Ja ich weiss schon worauf Oliver hinaus wollte.Will aber meinen Code 
nicht posten, da er projektgebunden nicht für die Öffentlichkeit gedacht 
ist.

Das mit den Bauteiltoleranzen werd ich aber mal ins Auge fassen, obwohl 
es dann schon relativ komisch wäre, dass bei 4 bestückten Sensoren es 
auf zwei Lp´s ohne Probleme geht und die anderen diesen Fehler besitzen.

Bob schrieb:

>Schon mal die Sensoren getauscht,...

Das wollt ich eigentlich nicht mehr machen.Wäre aber natürlich sehr gut, 
um den Fehler auf den einen Sensor einzuschränken.

von Klaus D. (kolisson)


Lesenswert?

Du schreibst ja noch nichteinmal wie die Sensoren gelesen werden.
ADC vielleicht ?

K.

von Ralf G. (ralg)


Lesenswert?

nicht "Gast" schrieb:
> Bauteiltoleranzen
...falsches Bauteil, Kurzschluss, kalte Lötstelle...

(ich misch' erstmal die Karten neu)

von Bob (Gast)


Lesenswert?

Wenn der Code nicht veröffentlicht werden kann wird Hilfe
schwierig, man kann nur Raten.

Wenn Du den Sensor nicht tauschen möchtetst, was hindert Dich
das Meßsignal direkt am µC-Pin zu messen, an beiden Baugruppen
auf die idetische Weise? (z.B. ADC-Pin und GND-Pin)
Ist das Signal am µC-Pin absolut gleich?
JA: Dann mal in der SW prüfen, (Timing, spuckt ein Interrupt rein)
NEIN: Signalweg durchprüfen.

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.