www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wer setzt den Interrupt für den ISR (LCD_vect) beim Butterfly


Autor: schmitt45 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Zusammen,

bin grad dabei den portierten GCC Code vom Butterfly zu debuggen, um den 
Funktionsablauf zu verstehen.

Mir ist nun aufgefallen, dass irgendwann der ISR(LCD_vect) immer wieder 
angeworfen wird.

Wo wird ein entsprechendes Flag gesetzt? Bzw wer wirft den ISR() an?

Komme an dieser Stelle nicht weiter und bin für jede Hilfe dankbar.

Viele Grüße,
Mike

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne jetzt nachzuschauen: LCD_vect würde ich dem LCD-Controller zuordnen 
und zu dem sollte doch eine Beschreibung seiner IRQ-Möglichkeiten im 
Datenblatt des Mega169 stehen?

Gruß aus Berlin
Michael

Autor: schmitt45 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Michael,

danke für Deine schnelle Antwort.

Die Register habe ich diesbzgl durchgesehen.
LCDIE := Interrupt enable ist gesetzt
daher erwarte ich beim
LCDIF ein Flag und anschließend den Sprung in die ISR Routine.
Leider wird das LCDIF nie gesetzt und meine logische Welt beginnt zu 
bröckeln...

Das hier habe ich noch im Netz gefunden:
http://simplecircuitdesign.com/html/LCD__driver_8c...

scheint mir so, als ob alle Referenzen den Interrupt anwerfen, jedoch 
kann ich nirgends im Quellcode entsprechende Einträge finden, wo ein 
Flag (insbesondere das LCDIF) gesetzt wird...

Viele Grüße,
Mike

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rein von der Erinnerung her wird der LCD-Interrupt durch den 32-kHz-
Timer angeworfen, der für das Multiplexen des LCDs zuständig ist.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

LCDIF ist ein Interrupt-Flag, das wird durch die Hardware gesetzt.
Welcher Hardwareteil dafür zuständig ist, kann Dir nur die Beschreibung 
des Mega169 sagen. Wie Jörg Wunsch schon bemerkte, dürfte es ein 
spezieller Timer sein, der vom LCD-Controller genutzt wird.

PS: gerade mal schnell ins Datenblatt geschaut: LCDIF wird gesetzt, wenn 
ein neues Frame beginnt und die Displaydaten geupdatet werden. genaueres 
muß Du Dir selbst aus dem Datenblatt raussuchen. Ich habe mich mir der 
Programmiereung des Displaycontrollers noch nicht befaßt.

Gruß aus Berlin
Michael

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

der Quarz hängt am Timer2, da müsste die ISR() angeworfen werden. sehe 
dort aber keinen flag das gesetzt wird. Kann es sein, dass nur ein 
Sprungmarke zur Vektortabelle zum ISR gesetzt wird? dort ist ja 
wiederrum die adresse als einsprungmarke zum ISR(LCD) drin...
Habt ihr ein Tipp wie ich die Sprungmarke am Besten finden kann???

Gruß,
Mike

@Mods
P.S. Obiger Text wurde von der Seite als Spam erkannt?
Mache ich etwas falsch oder sind einfach nur die Einstellung für das 
Forum so restriktiv eingestellt???

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike wrote:

> der Quarz hängt am Timer2, da müsste die ISR() angeworfen werden.

Nein, bei den LCD-Controllern wird dieser Quarz auf den LCD-Block
,,umgebogen''.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.