Probleem bij signaalverwerking

Volgende scoopbeeld toont 2signalen: blauw= clock en rood= data. Beide signalen worden opgewekt met een PIC16F628. Het clocksignaal heeft een frequentie van 36kHz, een duty-cycle van 50% en wordt verkregen door de CCP-module van de uC. Dit signaal wordt teruggekopeld aan de RB0-pin. Nu bij elke stijgende klank van de clock onstaant er een interrupt (=RB0 external int.) In het ISR wordt er gekeken naar de 1ste bit van een register en zal afhankelijk van de logische "1" of "0" de RB1-pin setten of clearen. Bij de volgende stijgende flank opnieuw interrupt en 2de bit verwerken,... . Dit gedeelte werkt maar er is 1 probleem: bij elke stijgende flank van de clock veranderd de data niet onmiddelijk zie scoopbeeld). Voor verdere signaal verwerking is dit een probleem. Weet iemand waaraan dit zou kunnen liggen?

scoopbeeld

Dit kun je toch wel snel zelf verzinnen zeker?
Als je PIC draait op 4MHz dan duurt elke instructie 1µs. Je hebt minstens drie instructies nodig om je context te saven, dus daar "verlies" je al 3µs, vervolgens moet je waarschijnlijk een kleine beslissingsstructuur doorlopen wat ook weer tijd kost. Hou er dan ook rekening mee dat RB.0 een externe interrupt source is, dus is het een asynchrone interrupt, het kan je dus ook weer 1µs kosten.
Alles bij elkaar opgeteld kom je inderdaad aan die 6µs. Kan je niets aan doen, behalve je klokfrequentie opdrijven.

Het probleem bij een maatschappelijke samenleving is dat je geen "normale" uitzondering kan zijn...