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.
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.
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.
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.
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
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.
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.
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
Wie ist deine Strategie, um das "Takt-Signal" zu erzeugen? Gruß Oliver
Hmmmm ? Was fragst du nun ? Hab ich etwas falsch gemacht ? k.
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
na dann , warten wir auf TO. Ich hatte das dann auch falsch verstanden . Gutes Nächtle Dann Klaus
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.