-
        

Ergebnis 1 bis 5 von 5

Thema: Pin Change Interrupt am Mega168

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2006
    Ort
    Gratkorn
    Alter
    27
    Beiträge
    207

    Pin Change Interrupt am Mega168

    Anzeige

    Hallo an alle!!

    Für eine Menüsteuerung möchte ich die Pin Change Interrupts am Mega168 verwenden. Jedoch verstehe ich die die genaue Verwendung leider nicht

    Das Entprellen mach ich über die Hardware.

    Wenn ein Logikpegelwechsel an einem Pin Change Interrupt erfolgt, gibt es für jeden Interrupt einen eigenen Interrupt. Für jeden Pin gibt es dann auch eine dazugehörige Interruproutint, oder???

    Wie, und wo muss ich die Pins deklarieren, damit die Interrupts freigegeben werden? Und wie heißen die Interruptvektoren?

    Danke im Voraus

    Gruß Robert

  2. #2
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.989
    Blog-Einträge
    1
    Es gibt 3 verschiedene Interrupts. Jeder gilt führ mehrere PIN´s. Der richtige Pin muss dann über ein Register ermittelt werden.
    Ein Beispiel dazu gibts hier:
    http://www.roboternetz.de/phpBB2/zei...g.php?p=120208

    Empfehlenswert ist es auch noch die Registerbelegung und Interrupt Vektoren im Datenblatt des M168 anzuschaun, dadurch wird gleich einiges klarer.

    Gruß Frank

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2006
    Ort
    Gratkorn
    Alter
    27
    Beiträge
    207
    Hallo Frank

    Im Datenblatt hab ich mal geschaut. Für jeden Pin gbe es keine eigen Interruptvektoren, oder?

    Nur für die Pin Change Interruptports, oder? (PCINT0, PCINT1, PCINT2).

    Wenn ein Interrupt am Pin Change Pin 9 audtritt, wird die Interruptroutine mit dem Vektor PCINT1 aufgerufen. Stimmt das so??

    Gruß Robert

  4. #4
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.989
    Blog-Einträge
    1
    Ja sag ich ja. Jeder der Interrupts ist aber für mehrere PCINT Interrupts. In den Registern PCMSK0,PCMSK1 und PCMSK2 kannst du alle INTERRUPTS durch 1 Bits aktivieren oder ausschalten. Du siehst auch bei diesen Registern welche alle zusammen einen Interrupt auslösen.

    Welcher Pin letzlich den Interrupt ausgelöst hat musst du meiner Erinnerung nach durch Abfrage des Ports selbst in der IRQ Routine ermitteln.

    Pin9 ist PCINT6. PCINT6 gehört zum PCMSK0 Register also wird der Interrupt PCINT0 aufgerufen.

    aber du meinst glaube PCINT9:

    PCINT9 dagegen gehört zum PCMSK1 Register also wird der Interrupt PCINT1 aufgerufen.

    Ist ne feine Sache mit den vielen Interrupts beim Mega168
    Gruß Frank

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2006
    Ort
    Gratkorn
    Alter
    27
    Beiträge
    207
    Ok Danke Frank

Berechtigungen

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