cfg = 2 gives you one group of two channels.
Both of those channels have the same debounce time and are serviced by the same function.
So cfg=2 needs
addf debounce.0 base-thread
setp debounce.0.20000
net something debouncee.0.0.....
net something-else debounce.0.1....
If you wanted two groups of one channel:
cfg = 1,1
addf debounce.0 base-thread
addf debounce 1 base-thread
setp debounce.0.time 100
setp debounce.1.time 20000
net something debounce.0.0......
net something-else debounce.1.0....
The reason that your current HAL doesn't do anything is that you are connecting the home-filtered and limit-filtered to debounce outputs, but you are not then connecting the signals to any motion inputs, to do anything.
Also, note that the numbers are thread cycles, so 20000 x 50,000nS (at a guess) so that is a 1s delay.
Code:
loadrt debounce cfg=1,1
addf debounce.0 base-thread
addf debounce.1 base-thread
setp debounce.0.delay 200
setp debounce.1.delay 2000
net limit_raw parport.0.pin-12-in => debounce.0.0.in debounce.1.0.in
net home_filtered debounce.0.0.out
net limit_filtered debounce.1.0.out
net limit_filtered axis.0.neg−lim−sw−in axis.0.pos-lim-sw-in
net home_filtered axis.0.home-sw-in
net limit_filtered axis.1.neg−lim−sw−in axis.1.pos-lim-sw-in
et home_filtered axis.1.home-sw-in
net limit_filtered axis.2.neg−lim−sw−in axis.2.pos-lim-sw-in
net home_filtered filt axis.2.home-sw-in