Har gjort en "vanlig" koppling med optokopplare, med "släckt lysdiod" = idle, dvs. logisk etta på ingång/utgång på respektive processor.

(snedstrecken symboliserar kabel - alltså ingen komponent)
När jag skickar en puls på 100µS får jag i andra änden 240µS.
200µS => 340 µS, 1000µS => 1140 µS
pulsen förlängs alltså med ca 140 µS... men jag kan inte förstå hur?
Jag funderade på om det interna pull-up motståndet kanske var inaktiverat eller för högt (enligt databladet ska det ligga mellan 20 och 100 KΩ). Så när jag höll ett 10kΩ motstånd mellan ingång och +5V erhöll jag exakta signaler. När jag lödat dit motståndet visade det sig att exakt samma fördröjning låg kvar, dvs. 140 µS

Jag kom på att den exakta signalen erhöll jag då jag lade fingret på optokopplarens transistorsida, helst om jag nuddade basen på transistorn. Men jag lyckades inte erhålla samma funktion genom att sätta dit något motstånd. Basen ska ju inte heller behövas användas om optokopplaren fungerar som den ska. (jag mätte kontinuerligt pulser på 100, 200, 300 och 400 µS under tiden som jag pysslade) . Manipulering på lysdiodsidan gav ingen förändring.
Har jag gjort något korkat fel, eller är någon komponent (optokopplaren eller processorn?) trasig? Börjar bli smått tokig snart! Mitt projekt blir väldigt mycket försenat om jag inte får igång UART kommunikationen. (jag ska köra med 9600 BAUD)
Jag kan tillägga att jag använt både hårdvaru USART samt mjukvaru-timer och olika programsnuttar att mäta tiden med för att utesluta mjukvarufel. Alla varianter fungerar perfekt i simulator/debugger, men ger samma fel i hårdvaran. Så det kan inte vara mjukvarufel.
Jag har inget oscilloskop eller annat mätinstrument utan jag får förlita mig på processorn. Hjälp! Vad ska jag göra nu? Ska jag testa att byta optokopplaren?