Hallo,
@RoboHolIC
stimme Dir zu, mit dem GIE habe ich mich verlaufen.
GIE wird in ISR zurückgenommen und mit RETFIE wieder gesetzt.
Das Einzige was gehändelt werden muß ist in der ISR das TMR0IF.
Nur so nebenbei:
Ich habe in ISR einfach TMR0IF = 0; gesetzt.
Warum ist das in einem Beisp. INTCON &= ~(1<<T0IF); // clear timer0 overflow bit.
wie ein Schuß von hinten durch die Brust ins Auge?
Interessant, TMR0IF = 1; löst umgehend einen Interrupt aus.
Ich muß mich korrigieren, T0IF wird ebenso akzeptiert wie TMR0IF
Kann nur vermuten, daß ich mich verschrieben hatte.
@Klebwax
ja, das war auf die Schnelle ein einfaches Beispiel. Jetzt wo ich es bräuchte finde ich keines, doch die letzten zwei Wochen bin ich zu Hauf über solche Besonderheiten gestolpert.
Sei es drum, das Einzige was mich noch drückt ist die Interrupt Routine.
Im XC8 wird von __interrupt . . . geschrieben.
Ich bin durch Zufall und probieren bei "void interrupt lowISR(void)" gelandet.
Es geht und stört nicht weiter, doch es scheint letztendlich nicht im Sinne des Erfinders zu sein.
Was noch etwas bedenklich stimmt ist die beständige Meldung:
. . . mplab_ipe\xc8\v1.00\sources\ftmul.c:60: warning: (751) arithmetic overflow in constant expression
Es ist eine Warnung und wirkt sich nicht weiter aus.
Gruß juppkk
Lesezeichen