This may not find favour with the experts, but you could try this code. No interrupts 
Code:
Counter var byte
for Counter = 1 to 500 ' 500 mS time to find inputb
pauseus 1000 ' pause a millisecond. You may need to trim this value
if InputB then ProcessB
next
' ..... do code following 500mS timeout of not getting InputB
return ' to wherever
ProcessB:
' do whatever you want here. You could also tell after how long InputB has come by reading the value of the Counter which counts in 1mS increments
return
The grain here is 1mS between samples of the inputB which I guess should be overkill for a photography application if InputB is a manual push button
Bookmarks