Arjen H.Op zich geen specifieke reden, behalve dan dat een RB2 een eigen vlag heeft en RB7:RB4 een gezamelijke. Bij de laatste moet je dus nog weer testen welke van de 4 het is geweest. RB2 werkt ook op flanken, waarbij je ook kan aangeven rising of falling edge (in mijn geval wenselijk).
Hmm... Klinkt niet overtuigend: voorzover ik de probleembeschrijving volg gaat het maar om 1 signaal; als je dit aansluit op RB4 en RB7:5 afsluit of op output zet is de situatie qua interrupt-afhandeling niet anders dan hij nu is, terwijl je de edge-flip niet hoeft te regelen.
En ik ken geen digitaal signaal waar een opgaande flank niet altijd gevolgd wordt door een neergaande, dus het zelf kunnen kiezen van de edge heeft m.i. geen toegevoegde waarde.
Mijn originele code heb ik weer terug geplaatst en kom tot de conclusie dat in de functie ProcessIO( ) een call (of beide in mijn geval) naar OpenADC( ) roet in het eten gooit. Als ik de OpenADC( )'s uit commentarieer, dan heb ik geen storing op de RB2 interrupt.
Iemand hier een idee over?
Niet direct; maar INT2 komt voor in registers die ook door anderen gebruikt worden, terwijl dat voor de KBI (change-detect) niet zozeer geldt. Waarom voldoet de oplossing van pjongen niet zonder meer?