PCINT und PWM Wechselwirkung ATMega1284P

OP #4752002
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
Gast #4752147
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?
Gast #4752749
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...
OP #4752760
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!
#4752833
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.
Gast #4752836
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...
Gast #4752847
> 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.
Angehängte Dateien:
Gast #4752872
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...
Gast #4752881
> 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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.