Is there a better way to do this? The goal is to catch extremely short button presses, and turn that short button press into a relatively long (~500ms) input signal.
The use case is a processor that polls its input lines every few msec. I wish it was an interrupt, but the code is in a library and I don't have time to re-write it. There is a momentary push button on one of the inputs, and the user will frequently smack the button resulting in a button press so short that the processor misses it. So I need to catch an extremely short button press and hold it for a relatively long time (500ms) to be sure the processor reads it. We are expecting multiple seconds between successive button presses. Is there a better (less parts, cheaper) way to do it than this? In the graph, green represents the input line into the processor that needs to be held low for ~500ms on each button press. My fear is I will need a relatively expensive OpAmp (rail to rail) to make this work. The processor considers any input above about 0.9v to be "high".


The use case is a processor that polls its input lines every few msec. I wish it was an interrupt, but the code is in a library and I don't have time to re-write it. There is a momentary push button on one of the inputs, and the user will frequently smack the button resulting in a button press so short that the processor misses it. So I need to catch an extremely short button press and hold it for a relatively long time (500ms) to be sure the processor reads it. We are expecting multiple seconds between successive button presses. Is there a better (less parts, cheaper) way to do it than this? In the graph, green represents the input line into the processor that needs to be held low for ~500ms on each button press. My fear is I will need a relatively expensive OpAmp (rail to rail) to make this work. The processor considers any input above about 0.9v to be "high".


Attachments
-
26.5 KB Views: 4