08-15-2017 06:00 PM
Hello,
I am using the Watchdog functionality of NI6509 PCI board.
The problem I am experiencing is that Watchdog time sometime expires prematurely.
Especially if I stop the watch dog and restart it again.
Please see the attached NI6509Controller.cpp, where I am defining following functions:
1) SetupWatchDogTask
2) StopBoardTask
3) RunWatchDogThread
Basically my thread is running the thread function RunWatchDogThread, waiting to receive following commands:
- WD_START, WD_PUMP, WD_STOP and calls the functions as described in the code.
Usually I am starting the Watchdog with timeout = 5s and start pumping with command WD_PUMP.
At some time I am stopping it by sending WD_STOP command,
By this point the functionality works fine.
Next time I start the Watchdog( WD_START with 5s ), it stops prematurely within a second.
Could you please help?
Thanks in forward,
08-16-2017 03:44 PM
Problem fixed!
Actually the port which is assigned to be asserted to HIGH by Watchdog needed to be put to Low before Watchdog started.
Otherwise it was floating and causing Change Detection Task to catch false transition Low->High.