Hallo zusammen, ich stelle ein sehr merkwürdige Wechselwirkung beim einem ATMega1284P fest. Ich benutze den PCINT16, um ein PPM-Signal auszuwerten. Dazu wird der PinChange-Interrupt benutz und die entsprechende Maske in PCMSK2 gesetzt. In der ISR wird dann nur geschaut, ob es eine steigende oder fallende Flanke ist und dann der Wert des frei laufenden Timers 2 ausgelesen und die Differenz zum vorigen Wert bestimmt. Funktioniert problemlos. Wenn ich nun zusätzlich(!) Timer3 verwende, um ein PWM-Signal an OC3A und OC3B auszugeben, funktioniert die PPM-Erkennung sporadisch nicht mehr korrekt. Verwende ich nur OC3A oder OC3B scheint es keine Probleme zu geben. Das ganze findet derzeit nur auf einem Breadboard statt, d.h. an den PWM-Ausgängen ist noch nichts angeschlossen. Das ganze ist ohne Probleme reproduzierbar, ich brauche nur das OutputCompare zu aktivieren ... Irgendwelche Hinweise? VG Wilhelm
Da wird sich der PCINT Pin wohl Störstrahlung einfangen. Aufm Breadboard nichts ungewöhnliches. Warum machst du das eigentlich nicht mit dem ICP? Ggf. mit aktiviertem Noise Canceler?
Weil ICP1 auf OC2B liegt und ich das später noch brauche und ICP3 liegt auf OC3A, wo ja grad die PWM generiert wird.
Gut, dann Schaltung und Quelltext bitte. Und vielleicht ein Foto vom Aufbau.
Peter D. schrieb: > Och nö, schon wieder Prosa statt exaktem Quelltext. Wollte Euch nicht damit "langweilen" ... Scherz beiseite: ich werde erstmal noch einen anderen elektrischen Aufbau machen und dann schauen. Falls das Problem weiter besteht, werde ich dann ein minimal-example machen ...
... gelöst. Anscheinend ne HW-Macke: habe den ATMega1284P gegen ein anderes Exemplar getauscht -> keine Probleme mehr.
Wilhelm M. schrieb: > Weil ICP1 auf OC2B liegt Das stimmt... > und ICP3 liegt > auf OC3A ...das allerdings stimmt nicht. ICP3 liegt auf PB5. Und als einzige weitere alternative Funktionen liegen auf diesem Pin PCINT13 und MOSI. Keine PWM-Ausgänge...
Ok, das ist ja gut! Hatte mich schon gefragt warum das so b... ist. Im Datenblatt taucht die Bezeichnung ICP3 ja gar nicht an einem Pin auf :-( Jetzt weiß ich nicht mehr, welcher obskuren Quelle ich das entnommen hatte. Danke für den Hinweis!
Wilhelm M. schrieb: > Im Datenblatt taucht die Bezeichnung ICP3 ja gar nicht an einem Pin auf Doch. Auch seine Datenblätter sollte man ab und zu auf den letzten Stand bringen.
Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber nicht an einem Pin, sondern nur im Text ...
Wilhelm M. schrieb: > Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber > nicht an einem Pin, sondern nur im Text ... Kann ich jetzt nur bestätigen. Diese Version war mir noch nicht bekannt. In meiner Version von 01/2015 steht die Bezeichnung am Pin. Kann ja keiner ahnen, daß die da irgendwann einen Idioten ransetzten, der das wieder wegnimmt. Aber Hauptsache schön bunt.
Wilhelm M. schrieb: > Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber > nicht an einem Pin, sondern nur im Text ... Wetten, dass du da das DB hast, was die Mega164..1284 beschreibt (und vorgibt, auch den 1284P zu beschreiben)? Nada, das ist das "falsche". Es gibt ein extra dem Mega1284 P gewidmetes DB. Das findest du auch auf den Servern von Atmel (mit Googles Hilfe), es ist aber offensichtlich bei Atmel selber leider nicht verlinkt. Oder anders ausgedrückt: Atmel hatte mal den Plan, die DBs zusammenzuführen, es aber bis heute nicht geschafft, dies fehlerfrei zu tun (3 oder 4 Jahre?). Böderweise wird das alte DB (also das explizit für den 1284P) schon seit langem nicht mehr gepflegt, obwohl es viel mehr Wahrheit über diesen µC enthält, als das, was lt. Atmel derzeit wirklich zuständig ist... Tatsächlich ist es also aktuell so, dass man beide DBs lesen und gegeneinander abgleichen muss, um zu einer halbwegs korrekten Beschreibung des 1284P zu kommen. Das nervt. Aber die Typen von Atmel hatten scheinbar kein Geld, um auch nur einen Praktikanten zu bezahlen, der die Aufgabe löst. Muss man es halt selber machen...
> Wetten, dass du da das DB hast, was die Mega164..1284 > beschreibt (und vorgibt, auch den 1284P zu beschreiben)? > Nada, das ist das "falsche". Es gibt ein extra dem Mega1284 P > gewidmetes DB. Also diesen Einwand, c-hater, verstehe ich nun nicht, hatte ich mir jetzt doch extra das neueste von Atmel heruntergeladen.
c-hater schrieb: > Wetten, dass du da das DB hast, was die Mega164..1284 beschreibt (und > vorgibt, auch den 1284P zu beschreiben)? > Es gibt ein extra dem Mega1284 P > gewidmetes DB. http://www.atmel.com/Images/Atmel-42719-ATmega1284P_Datasheet.pdf Das ist das aktuelle DB vom 1284. Das Datenblatt, in dem der Pin in der Pin-Out Grafik bezeichnet ist, ist das "Universal"-DB.
Das zum Thema: "Schau gefälligst in das Datenblatt!" Die korrekte Reaktion könnte demnächst in der Gegenfrage bestehen: "In welches?" :) MfG Paul
S. Landolt schrieb: > Also diesen Einwand, c-hater, verstehe ich nun nicht, hatte ich mir > jetzt doch extra das neueste von Atmel heruntergeladen. Hmm... Linkadresse? Adresse der Seite, auf der du diesen Link gefunden hast? Wäre ja schick, wenn Atmel wenigstens dieses Problem nach all den vielen Jahren endlich mal gelöst hätte...
> Linkadresse?
Siehe den von Thomas Eckmann angegebenen Link, ganz normal per Google
mit "ATmega1284P" gefunden, erster Eintrag.
Übrigens hatte das alte von 2015-01, also das für 164A..1284P, noch
rund 31 MB, das neue von 2016-08 für den 1284P allein nur knapp 6 MB.
In dem Datenblatt von 08/2016 steht explizit 1284P als Type drin. Und in dem von 01/2015 steht zwar die Bezeichnung ICP3 am Pin, aber dafür die alte Bezeichnung ICP und nicht ICP1 am anderen Pin .... Oh je!
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.

