Main Site Documentation

Digital input causing spider to hang


#1

I have a spider with an interrupt input, PWM output and an analog input.

myMotionSwitch = eBlock1.SetupInterruptInput(GT.Socket.Pin.Three, GlitchFilterMode.On, ResistorMode.PullUp, InterruptMode.RisingAndFallingEdge)
myFanPot = eBlock1.SetupAnalogInput(GT.Socket.Pin.Four)
myFanDriver = eBlock2.SetupPWMOutput(GT.Socket.Pin.Eight)

eBlock1 is on spider port # 9
eBlock2 is on spider port # 11

I have a thread that checks the analog for a value every 100ms and vaires the PWM output accordingly. However when the interrupt input is pulled low then the system hangs until the input goes high again. I have tried other DIO’s with the same result.

Some of time, mostly after a reboot, the system work as intended, but over time this behavior becomes 100% of the time.

On another spider it works fine. Is this indicating a bad board?

No errors on debug. System just hangs until you pull the input high again.

Whats up?

Thanks -AP


#2

Is the pin going in fixed level or toggling too fast that it overruns the ISR.


#3

I don’t think so…

I would say its not toggling too fast. The input is connected to a motion sensor with a dry contact. How would I see this though? If the system just hangs and there is no debug info I guess I would need to hook up a scope.


#4

Scope?


#5

Oscilloscope. I took your suggestions to mean there a rapid toggling of the input could be to blame…a scope would show that no?

-AP


#6

Yes


#7

Would a short burst of toggling cause the ISR to overrun or would have to be a sustained toggling of the input to cause the hanging I am seeing?

Its a crude contact that makes the signal and its dirty for no more than 50ms, but after that its a clean signal. I would expect the glitch filter to clean this up.

-AP