Forum: Mikrocontroller und Digitale Elektronik Störungen auf dem Ausgang von Mega88


von J. S. (harry_2)


Lesenswert?

Hallo Gemeinde,

ich bräuchte mal wieder einen Denkanstoß, ich habe mir mittels
Timer1 eine stabil stehende feste Frequenz erzeugt, hat
schlussendlich wunderbar funktioniert, stimmt auf die µS, aber,
nach ca. 8Sekunden bekomme ich eine Störung und zwar periodisch
und reproduzierbar.
Ich habe nun langsam keine Ideen mehr woran es liegen könnte.
Ich hoffe Ihr habt noch die eine oder andere die ich noch nicht
versucht habe. Ach ja das Teil läuft mit 8MhZ.
von Fox Mulder (Gast)


Lesenswert?

Na das kann nur an der Zeile 42 liegen, wie meistens.
von Fluxi (Gast)


Lesenswert?

Das liegt wohl höchstwahrscheinlich am Fluxkompensator. Schau mal nach 
nem verstopften Filter oder ob alle Leitungen sauber gesteckt sind. Da 
fängt man sich schnell repruduzierbare Störungen im 8 Sekunden-Takt ein.
von Obergott (Gast)


Lesenswert?

Das ist der Watchdog Time-out.
von J. S. (harry_2)


Lesenswert?

Es ist immer wieder erfrischend lesen zu können was mancher so
von sich gibt. Leute mal im Ernst ich bin sicher nicht an Comic
interresiert, wenn Ihr doch nichts bei zu tragen habt lasst es einfach,
dadurch werden solche Foren mit Sicherheit nicht besser.
An Obergott, dem Watchdog hatte ich auch im Verdacht, wäre zu
einfach gewesen, das ist was anderes. Nur halt was.
von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

J. S. schrieb:
> Es ist immer wieder erfrischend lesen zu können was mancher so
> von sich gibt. Leute mal im Ernst ich bin sicher nicht an Comic
> interresiert, wenn Ihr doch nichts bei zu tragen habt lasst es einfach,
> dadurch werden solche Foren mit Sicherheit nicht besser.
> An Obergott, dem Watchdog hatte ich auch im Verdacht, wäre zu
> einfach gewesen, das ist was anderes. Nur halt was.

Wir brauchen CODE CODE CODE.

Denn nur in Zeile 42 steht wie der Kompensator (falsch) angesteuert 
wird.
von Oliver J. (skriptkiddy)


Lesenswert?

Code?
Schaltplan?

Ansonsten wird es nur Raten.

Gruß Oliver
von Juergen G. (jup)


Lesenswert?

Du hast mit der Comic angefangen.

Fragst was Du falsch machst, sagst uns aber nicht was Du gemacht hast.

Zumindest den Source code solltest Du uns geben.

Ju
von J. S. (harry_2)


Lesenswert?

Hallo Oliver,

Schaltplan gibts noch keinen, der gesamte Code ist ca. 5K wollte ich
nicht unbedingt komplett hier einstellen. Das Problem ist der Wert im
OCR1B, Du musst Dir auch nicht vorstellen das das eine riesige
Störung ist, das sind ca 15µS die das Signal sich züglich verändert
aber die machen halt schon Probleme. Was ich da auch nicht verstehe
ist das die Impulbreite da unerheblich ist, also bei kleiner
Impulsbreite von ca. 300µs genau so wie bei extrem langer
Impulsbreite von ca 3500µS. Immer der gleiche Misst.
von Juergen G. (jup)


Lesenswert?

Wie oben schon erwaehnt, wir koennen nur raten.


Ich bin der Meinung das Dir da ein anderer Interrupt in die Quere kommt.

Wenn x die Anzahl der uC-Cyclen sind die Du zwischen einem und dem 
naechsten IRQ hast, und jetzt ein anderer IRQ der eine 20 Cyclen lange 
ISR hat, zwei Cyclen vor dem erreichen des ersten IRQ greift, dann hast 
Du eine Verzoegerung von 18 Cyclen in Deinem Signal.


Ju

Edit
Ist nicht ganz korrekt weil der ISR Overhead da noch mit dazu kommt.
es sind ein paar Cyclen mehr.
von Klaus D. (kolisson)


Lesenswert?

Hi,
Autor: J. S. (harry_2)
Datum: 30.08.2011 02:15

Du musst doch den anderen auch die Frage nach dem Sourcecode zugestehen.
Dein Problem liegt ja hier:

ein takt bei 8Mhz = 125nS
15uS (dein Fehler)= 120 Takte

Du schreibst ja selbst, dass der Fehler zyklisch auftritt.
Allein das sollte dir die Möglichkeit geben diesen selbst zu finden,
indem du deine 5kB Source auf das nötigste reduzierst und prüfst,
ob du da einen Flaw drinne  hast.
Gerade bei den Timern gibt es viele Fehlerqellen. Allerdings berichtest
du ja , dass dein problem zwar zyklisch aber nicht wirklich in relation
zum Timertakt auftritt.

Da würde ich jetzt mal raten , dass du irgendwelche ISR im Gange hast,
die dir zyklisch dazwischenfunken.

Mach dein Programm schlanker und kreise den Fehler ein.

Dann kannst du auch den code Posten, da er klein ist.

Ist das wirklich so schwer ?

Klaus
von Oliver J. (skriptkiddy)


Lesenswert?

Wie ist deine Strategie, um das "Takt-Signal" zu erzeugen?

Gruß Oliver
von Klaus D. (kolisson)


Lesenswert?

Hmmmm ? Was fragst du nun ?
Hab ich etwas falsch gemacht ?

k.
von Oliver J. (skriptkiddy)


Lesenswert?

Klaus De lisson schrieb:
> Hmmmm ? Was fragst du nun ?
> Hab ich etwas falsch gemacht ?
>
> k.

War nicht an dich adressiert, sondern an den TO. Hätte das vielleicht 
dazu schreiben sollen.
Sorry.

Deinen Ausführungen ist von meiner Seite aus nichts entgegen zu setzen.

Gruß Oliver
von Klaus D. (kolisson)


Lesenswert?

na dann ,
warten wir auf TO.
Ich hatte das dann auch falsch verstanden .

Gutes Nächtle Dann

Klaus
von J. S. (harry_2)


Lesenswert?

Hallo,
ich freue mich über das rege Interesse. Erst mal die Fragen die
gestellte wurden: bezüglich der Strategie, OCRIA laden mit dem
Wert für Frequenz, in meinem Fall 470Hz (OCR1A 2128), für TON
brauche ich einen Wert von genau 120µs (OCR1B 120). Das geht
wunderbar,so weit, wenn das nicht der schwapper wäre. Also
Interrupt´s habe ich alles abgeschaltet bis auf die zwei für
die Vergleiche auf die OCR, Watchdog in diesem Bereich komplett
abgeschaltet. Passiert trotz allem.
von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Watchdog always on Fusebit gesetzt?
von Simon K. (simon) Benutzerseite


Lesenswert?

Lass mich raten: Das Programm besteht aus einer .c (?) Datei. Alle 5000 
Zeilen. Es gibt keine Struktur im Programm und du hast den Überblick 
verloren.

Ein gut strukturiertes Projekt mit 5K Zeilen verteilt auf 10 Dateien 
wäre hingegen als kompilierbares .zip Archiv kein Problem.
von J. S. (harry_2)


Lesenswert?

Hallo an alle,
ich habe meinen Mist gefunden, ohne Struktur wäre das nicht
überhaupt nicht möglich gewesen, soviel dazu.
Ich habe einen Rücksprung verschlampt und dabei das Fehlerbild,
war schon heftig. Das mit der Zeit zurückrechnen hat geholfen
vielen Dank.
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.