I fully agree, but I was thinking about much different approach which is not CPU hungry. If we are willing to sacrifice accuracy, then for example we can have 1ms SysTick and in 1st OnSysTick we activate output pin, in 2nd OnSysTick we check if input pin was activated and if it was we don't have a touch catch and we don't increment that channel semaphore. We wait for a catch for a predetermined number of SysTicks (found experimentally for a given resistor). If all SysTicks pass we don't have a catch and we decrement our sempahore. If there is a catch we increment our semaphore and deactivate our output for one SysTick. After all that we go all over again. For a simple touch button we don't care on what SysTick was our input pin activated. For some applications we care about this info and then some analog value representing SysTick number could be used instead of semaphore. If we need a quicker reaction, we can set our SysTick to less then 1ms (down to 0.1ms), but we will be limited with resistor and user pressing the key.
This should be possible if we connect our pins as shown here:
There is no actual capacitor. Just one plate of it (like foil or brass PCB area), and human hand is making the other plate, which combined with depth of (for example) plastic or glass housing makes a capacitor good enough to exploit. Capacitance increases with human hand "touching" the "key". Experiments were successful even with humans not standing on the ground.
This should be possible if we connect our pins as shown here:
There is no actual capacitor. Just one plate of it (like foil or brass PCB area), and human hand is making the other plate, which combined with depth of (for example) plastic or glass housing makes a capacitor good enough to exploit. Capacitance increases with human hand "touching" the "key". Experiments were successful even with humans not standing on the ground.