-         

Ergebnis 1 bis 9 von 9

Thema: Interrupt's beim Mega8L mit Assembler progr.!

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.03.2006
    Beiträge
    78

    Interrupt's beim Mega8L mit Assembler progr.!

    Anzeige

    Hallo an alle,
    bin gerade dabei, mich im AVR-Studio 4 in Assembler zu probieren.
    Wo ich überhaupt nicht durchblicke, wie das mit den Interrupt's funktioniert!
    Ich weiß nur dass es 2 gibt, PortD2 u.3 , aber das ist schon alles, leider!
    Jedoch wie aktivieren-Programmcode......., keine Ahnung!

    Vielleicht kann mir jemand weiterhelfen
    Danke
    Gruß papua

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo papuadive.

    Unter der Adresse www.mikrocontroller.net findest Du ein
    AVR - Tutorial. Dort findest Du alle Antworten auf Deine Fragen.

    Mfg
    A.Hoffmann

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.03.2006
    Beiträge
    78
    hallo a.hoffmann!
    hab mal im avr-tutorial nachgesehen, aber so richtig fündig bin ich nicht geworden, trotzdem vielen dank
    gruß papua

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo
    Na da würde ich doch nochmal genau nachschauen.
    In dem tutorial gibt es einen Abschnitt mit dem Titel - Interrupts -
    und wie kann ich sie verwenden. Es Beschreibt die Verwendung von Interrupts beim Atmega8.

    Mfg
    A.Hoffmann

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Der erste Schritt ist, die Interruptvektortabelle mit den richtigen Sprungzielen zu versorgen.
    Als nächstes muß das EICRA und das EIMSK Register mit gültigen Werten versorgt werden.
    Nun musst Du noch deine Interruptroutine schreiben und auf den Speicherplatz plazieren auf den der zugehörige Interruptvektor zeigt.
    Das macht man üblicherweise mit Labels.
    Am Ende bzw. beim Aussprung aus der Interruptroutine muss der Assemblerbefehl RETI stehen.
    Nun solltest Du den Stack initialisieren, sonst läuft weder ein Interrupt, noch funktionieren Unterprogramme die mit CALL bzw. RCALL aufgerufen werden richtig.
    Wenn Du jetzt im Hauptprogramm die Interrupts mit dem Assembler Befehl SEI frei gibst, sollte eigentlich alles funktionieren.
    Vergiss nicht am Anfang der Interruptroutine die benötigten Register, sowie das SREG zu sichern.
    Vor dem Verlassen der Routine müssen die Werte wieder zurück geschrieben werden.
    Ein GIMSK Register hat dieser Chip anscheinend nicht.

    Die nötigen Informationen kannst Du dem Datenblatt des ATMEGA88 entnehmen - da sind sogar Code Beispiele mit bei.

    Ansonsten - schau dir halt mal an wie andere Assembler Programmierer das gemacht haben.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    26.03.2006
    Beiträge
    78
    vielen dank, die seite ist super....
    hab sie beim ersten überflug einfach nicht entdeckt..
    jetzt weiß ich, wie der hase bezüglich interrupt's...
    danke nochmals lieber a.hoffman
    gruß papua

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    26.03.2006
    Beiträge
    78
    danke auch lieber wkrug für die zusammenfassung....
    gruß papua

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo papua.

    Das von wkrug angesprochene Datenblatt des ATmega8(L) findest
    Du auf der Homepage von www.atmel.com.
    Gib dort in das Suchfenster einfach doc2486 ein.
    Diese kleine Datenblatt ist ein PDF Dokument von 308 Seiten.

    MfG

    A.Hoffmann

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Diese kleine Datenblatt ist ein PDF Dokument von 308 Seiten.
    Richtig.
    Und in einzelne Rubriken unterteilt.
    Das Kapitel Interrupts umfasst aber "nur" 14 Seiten und ist somit schon einigermassen Überschaubar.
    Ausserdem wird da wirklich jedes Bit en detail erklärt.

    Wenn Du dich wirklich mit den AVR Controllern ersthaft beschäftigen willst, wird Dir mit Sicherheit das gelegentliche nachschauen im Datenblatt des entsprechenden Controllers nicht erspart bleiben.

Berechtigungen

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