Wer setzt den Interrupt für den ISR (LCD_vect) beim Butterfly

Gast #1191837
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
Gast #1191859
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.html#a41facc6819739d0109a49044a11a87c

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
#1191868
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
Gast #1191901
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???

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren