- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: ATtiny13A: Pin Change Interrupt vs. INT0

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    53
    Beiträge
    407

    ATtiny13A: Pin Change Interrupt vs. INT0

    Hallo zusammen,

    was ist der Sinn dieser 3 kaskadierten D-Flip-Flops, ich meine wofür braucht man die dreifache Verzögerung?

    Klicke auf die Grafik für eine größere Ansicht

Name:	ATtiny13A_PCI_D-Flip-Flops.jpg
Hits:	14
Größe:	16,4 KB
ID:	34887


    Überhaupt, wozu brauche ich die PCINT, wenn ich doch die INT0 per :


    " Any logical change on INT0 generates an interrupt request "


    konfigurieren kann?

    Gut, eine PCINT kann ich an jedem beliebigen Portpin haben und die INT0 ist an PB1 gebunden, aber das kann doch nicht der Grund für die Existenz der PCINT sein?

    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Solche D-Flip-Flops dienen eigentlich nicht zur Verzögerung. Sie sind dazu da, asynchrone Signale für synchrone Schaltungen zu konditionieren. In synchronen Schaltungen, und eigentlich alle komplexen Schaltungen in einem Chip sind heutzutage synchron, dürfen sich Signale nicht zu jedem Zeitpunkt ändern. Bei den linken beiden FFs sieht man das deutlicher. Da findet man den Signalnamen "pin_sync", der das andeuted. An den rechten findet man ebenfalls Signalnamen. Wenn man den inneren Aufbau des Prozessors genauer kennt, könnte man Vermutungen über deren Funktion anstellen.

    Der Pin-Change Interrupt ist eigentlich ein suboptimales Konzept. Wenn der Eintritt, muß der Interrupthandler erstmal feststellen, welcher Pin da gezuckt hat. Bis das passiert, kann schon etwas Zeit ins Land gegangen sein und der Pin ist möglicherweise längst wieder in den Anfangszustand zurückgegangen. Nun weiß der Interrupthandler nicht, wer den Interrupt ausgelöst hat. Oder es hat sich inzwischen ein anderer Pin geändert. Sinn macht er eigentlich nur, wenn man ein Bündel von Signalen überwachen will. So z.B. wenn man mehrere Bausteine mit Interrupt-Ausgängen hat, die aktiv bleiben, bis sie der µC aktiv zurück setzt. Das entspricht in etwa dem Konzept von Shared Interrupts auf dem PCI-Bus.

    Bei einem einfachen Interrupt ist klar was los war, selbst wenn der Auslöser ein relativ kurzer Puls (wegen der linken Flipflops mindesten ein Takt lang) war.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    https://ww1.microchip.com/downloads/...oc/doc2535.pdf

    Seite 45 9.2 und 9.2.1 stehn die Antworten drin. Wird der KERN in einem Sleepmode geschickt welcher den Takt anhält gibt es für synchronisierte Signale keine Möglichkeit erfasst zu werden bzw den µC aufzuwecken. Somit hat man die PCINT ins Leben gerufen wenn der LOW-Level an INT0 nicht genutzt werden kann aber man möchte den µC wecken, wird dies über asynchrone Signale umgesetzt an anderen PINs. Somit haat man sich mehr Bandbreite geschaffen zu REAGIEREN.

    Die PCINT haben nur einen Nachteil das sie vom Prinzip her nur eine INT-Handler haben, heist alle PCINT's laufen dort auf. Speichrt man in dem PCINT-Handler das Flag des PINS der diesen ausgelöst hat kann man daraus mehrer SUB-Handler generieren und kann z.B. so per "gemultiplexten" PCINT verschiedene Aktionen vorrangig zum Hauptprogramm behandeln.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von avr_racer Beitrag anzeigen
    Wird der KERN in einem Sleepmode geschickt welcher den Takt anhält gibt es für synchronisierte Signale keine Möglichkeit erfasst zu werden bzw den µC aufzuwecken.
    Sleep hatte ich gar nicht auf dem Radar, benutze es zu selten. Aber du hast recht, das ist ein wichtiger Unterschied zwischen den anderen Interrupten und dem Pinchange Interrupt.

    MfG Klebwax
    Geändert von Klebwax (13.03.2020 um 08:36 Uhr)
    Strom fließt auch durch krumme Drähte !

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    53
    Beiträge
    407

    AVR INT0 : Levelverweilzeit bis der Interrupt ausgeführt wird

    Danke an euch beide für eure Ausführungen.

    " Note that if a level triggered interrupt is used for wake-up from Power-down, the required level must be held long enough for the MCU to complete the wake-up to trigger the level interrupt. "

    Wie lange muss denn das Level beim INT0 gehalten werden um den IRQ auszulösen - also wie viele Takte, wenn der µC erwacht ist?

    Gibt es eine Interrupt bei den AVR's, die erst auftritt, wenn ein Pegel eine gewisse Zeit vorhanden ist?

    Ich bräuchte so etwas, um den AVR erst dann aus dem Power-Down-Mode zu wecken, wenn der Low-Pegel länger als 8ms anhält.

    Es geht um die Auswertung einer Funksteckdose, die vermutlich auf dem CY800 basiert.

    Siehe auch :

    https://www.mikrocontroller.net/topic/487338#6099487


    Bernd_Stein



    Geändert von Bernd_Stein (05.04.2020 um 18:05 Uhr) Grund: Schrift war vorher zu klein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Seite 46 unter 9.3 lesen

    Flankenwechsel minimum 1 clock
    Level bsi der Int angesprungen wird.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    53
    Beiträge
    407
    Zitat Zitat von Bernd_Stein Beitrag anzeigen


    1. Wie lange muss denn das Level beim INT0 gehalten werden um den IRQ auszulösen - also wie viele Takte, wenn der µC erwacht ist?

    2. Gibt es eine Interrupt bei den AVR's, die erst auftritt, wenn ein Pegel eine gewisse Zeit vorhanden ist?

    3. Ich bräuchte so etwas, um den AVR erst dann aus dem Power-Down-Mode zu wecken, wenn der Low-Pegel länger als 8ms anhält.

    Zu 1.
    Hatte ich mal den ATtiny13A im Auslieferungszustand untersucht :
    Bei 12,15µs wird die INT0-ISR also noch nicht angesprungen.
    Erst bei einer Low-Pegelzeit von 12,20µs geschieht dies.

    Zu 2.
    Eine gewisse Zeit schon, aber nicht wie ich es brauchte.
    Detailierter hier -> kurz über 7.1 Sleep Modes lesen :

    https://www.edv-dompteur.de/forum/in...=3832#post3832

    Zu 3.
    Habe ich mittels retriggerbarem Monoflop ( 4538 ) gelöst.


    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

Ähnliche Themen

  1. Pin Change Interrupt am Mega2561
    Von slavezero im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 07.05.2009, 10:42
  2. interrupt on change
    Von The Man im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 14.07.2008, 21:40
  3. RC5-Decoder mit AtMega88 mit Pin Change Interrupt
    Von baschtian im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 25.06.2008, 12:35
  4. Pin Change Interrupt am Mega168
    Von Razer im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 17.05.2006, 19:16
  5. Pin change Interrupt und Tasten entprellen
    Von Razer im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 16.05.2006, 11:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests