I2C und Interrupt bei PIC

OP #2610803
Lesenswert?

Guten Abend!

Ich arbeite mit einem PIC (16F877A, später ist ein "kleinerer" geplant) 
an einem Kurzzeit-Timer (zum Belichten von Platinen bzw. Teekochen ...). 
Als Quarz verwende ich wegen der genauen Sekunden einen Quarz mit 3,2768 
MHz. Die 7-Segment-Anzeige soll über einen SAA1064 per I2C angesprochen 
werden. Der Compiler ist mikroPascal von Mikroelektronika.

Ein Programm, das einen einfachen (nicht sekunden-genauen) Zähler auf 
dem 7-Segment-Display ausgibt ist voll funktionsfähig. Soll heißen, dass 
meine Routinen richtig sind. Ebenso läuft ein Programm korrekt, dass 
einen sekunden-genauen Interrupt auslöst. Der hochzählende Wert wird 
testweise auf einem LCD ausgegeben. Kombiniere ich beide Programme 
funktioniert nichts mehr. Bei zwei anderen Controller-Typen existiert 
die gleiche Problematik. Wenn ich statt des SAA1064 einen Port-Expander 
PCF8574 anspreche ebenso eine Blockade des Interrupts.
Hat schon mal jemand ein ähnliches Problem/Phänomen gehabt? Müssen bei 
der Kombination von Interrupt und I2C Dinge beachtet werden? (Timing, 
Bits ...)

Schon mal vielen Dank!
Gast #2610822
Lesenswert?

Du kannst ja einfach beim Aufruf der I2C Routine den Sekundentimer 
Interrupt sperren und nach dem aktualisieren des Displays wieder 
freigeben. Dann wird der IRQ solange auf das Display geschrieben wird 
nicht bearbeitet, sondern erst danach. D.h. die nächste Ziffer erscheint 
dann einige Millisekunden später.

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