Ich habe hier einen Atmega324PB in einer bestehenden Schaltung.
Hier würde ich gerne nachträglich noch ein DCF77-Modul hinzufügen.
Leider sind INT0-INT2 für die externen Interrupts bereits belegt. Frei
wäre noch PE5 (SDA1). Lässt sich dieser dazu verwenden?
Ulli schrieb:> Hier würde ich gerne nachträglich noch ein DCF77-Modul hinzufügen.
Dazu nimmt man typisch einen Timerinterrupt, um bequem die Pulsdauern zu
zählen. Für DCF77-Dekodierung eignet sich gut ein Raster von 10ms.
Den Timerinterrupt braucht man außerdem als Uhr bei Empfangsstörungen.
Externe Interrupts verwendet man nur für schnelle Sachen (<10µs) oder
zum Aufwachen beim Stromsparen.
S. Landolt schrieb:> PE5 gehört leider zu dem Ausnahmen laut 'Table 6-1. PORT Function> Multiplexing'.
Nicht alles ungeprüft glauben!
Fangfrage: Welcher Pin bedient PCINT37?
> Ich vertraue da eher auf das "alte" Atmel-Datasheet.
Aber das sieht doch noch merkwürdiger aus, mit diesem komischen PCINT7
auf der siebten Position. Eigenartig.
Und in beiden wird unter PCICR bzw. PCIFR ein PCINT39 angeboten.
S. Landolt schrieb:>> Ich vertraue da eher auf das "alte" Atmel-Datasheet.>> Aber das sieht doch noch merkwürdiger aus, mit diesem komischen PCINT7> auf der siebten Position. Eigenartig.> Und in beiden wird unter PCICR bzw. PCIFR ein PCINT39 angeboten.> Hier wendet sich der Gast mit Grausen:> »So kann ich hier nicht ferner hausen,> Mein Chip kannst du nicht weiter sein.«
Na ja. In PCIE.. sind Gruppen von Interrupt-Pins auf Interrupts
zusammengefasst. Davon gibt es keine 38 oder so sondern nur genau 5.
Es gibt auch PCMSK4 - nur denen ist blöderweise nur PE0 und PE1
zugeordnet. Weiter geht es halt nicht - es sei denn jemand beweist das
Gegenteil :-). Das man bei den maskierten Interrupts immer schauen muss,
von welchem PIN der Interrupt kommt muss ich hier wohl keinem
Beteiligten erklären.
Hugo H. schrieb:> Papier ist geduldig. Ich vertraue da eher auf das "alte"> Atmel-Datasheet.
Ja, die MC-bearbeiteten strotzen leider nur so von Fehlern.
> https://www.e-lab.de/downloads/DOCs/mega324PB.pdf
Allerdings gibt es auch hier den "Widerspruch", dass für etliche PCINTs
zwar Maskenbits existieren, die entsprechende Funktion aber nicht in der
IO-MUX-Tabelle auftaucht.
Sowas gab es schon immer und es ist auch nicht wirklich ein Widerspruch.
Es zeigt bei einem Auftreten in den allermeisten Fällen nur eins: dass
es wohl in der Familie einen Controller gibt (oder zumindest ein
solcher mal geplant war), bei dem es die entsprechende Funktion
tatsächlich gibt. Aber bei dem konkreten Controller gibt es sie halt
nicht.
Also, nach meiner Erfahrung würde ich das so zusammenfassen: Primäre
Informationsquelle sollte die MUX-Tabelle sein, denn die stimmt fast
immer.
Aber da bleibt das "fast". Und um dies auszuräumen, muss man es halt
machen, wie es auch S. Landolt macht: man probiert es schlicht und
einfach aus. Ist ja nun kein Hexenwerk, ein kleines Testprogramm zu
schreiben, um sowas zu ermitteln.
Ulli schrieb:> Lässt sich dieser dazu verwenden?
Wie Peter schon schrieb: Wieso Interrupt, statt Timer-gestützter
Abfrage?
Ich hatte auch schon ein DCF77-Modul, dass prellte ähnlich wie ein
Schalter, weil die Flanke des Signals rotzmies war. Bei Polling ist das
egal, bei Interrupt nicht.
S. Landolt schrieb:> Sehr schön!> Fragt sich jetzt, was von beidem stimmt - ohne ATmega324PB kann ich es> leider nicht ausprobieren. Aber wir haben ja Ulli.
Ja.