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?
PE5 gehört leider zu dem Ausnahmen laut 'Table 6-1. PORT Function Multiplexing'.
Geht demnach also nicht, weil der PORTE die Funktion nicht unterstützt wenn ich das im DB richtig verstehe. Pech gehabt.
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?
Arduino Fanboy D. schrieb: > Fangfrage: Welcher Pin bedient PCINT37? Den Pin gleich neben dem von PCINT38... Oliver
> Fangfrage: Welcher Pin bedient PCINT37?
Tut mir leid, Arduino Fanboy, ich finde im Datenblatt keinen PCINT37.
S. Landolt schrieb: > Tut mir leid, Arduino Fanboy, ich finde im Datenblatt keinen PCINT37. Och, ich schon .... https://ww1.microchip.com/downloads/en/DeviceDoc/40001908A.pdf > Bits 0, 1, 2, 3, 4, 5, 6 – > PCINT32, PCINT33, PCINT34, PCINT35, PCINT36, PCINT37, > PCINT38: Pin > CDS40001908A-page 85
Sehr schön! Fragt sich jetzt, was von beidem stimmt - ohne ATmega324PB kann ich es leider nicht ausprobieren. Aber wir haben ja Ulli.
Arduino Fanboy D. schrieb: > https://ww1.microchip.com/downloads/en/DeviceDoc/40001908A.pdf >> Bits 0, 1, 2, 3, 4, 5, 6 – >> PCINT32, PCINT33, PCINT34, PCINT35, PCINT36, PCINT37, >> PCINT38: Pin >> CDS40001908A-page 85 Papier ist geduldig. Ich vertraue da eher auf das "alte" Atmel-Datasheet. https://www.e-lab.de/downloads/DOCs/mega324PB.pdf Hast Du das mit PCINT32 ff. mal ausprobiert?
:
Bearbeitet durch User
> 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.
1 | Hier wendet sich der Gast mit Grausen: |
2 | »So kann ich hier nicht ferner hausen, |
3 | Mein Chip kannst du nicht weiter sein.« |
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.
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.