User`s manual
- 59 -
Appendices
Appendix E: Watchdog Timer (WDT) Setting
WDT is widely used for industrial application to monitor CPU activities. The
application software depends on its requirement to trigger WDT with adequate
timer setting. Before WDT timeout, the functional normal system will reload
the WDT. The WDT never time-out for a normal system. The WDT will not be
reloaded by an abnormal system, then WDT will time-out and auto-reset the
system to avoid abnormal operation.
This computer supports 255 levels watchdog timer by software programming I/O
ports.
Below is an assembly program example to disable and load WDT.
Sample Codes:
/*----- Include Header Area -----*/
#include “math.h”
#include “stdio.h”
#include “dos.h”
#dene SIO_INDEX 0x2E /* or index = 0x4E */
#dene SIO_DATA 0x2F /* or data = 0x4F */
/*----- routing, sub-routing -----*/
void main()
{
outportb(SIO_INDEX, 0x87); /* SIO - Enable */
outportb(SIO_INDEX, 0x87);
outportb(SIO_INDEX, 0x07); /* LDN - WDT */
outportb(SIO_DATA, 0x07);
outportb(SIO_INDEX, 0x30); /* WDT - Enable */
outportb(SIO_DATA, 0x01);
outportb(SIO_INDEX, 0xF6); /* WDT - Timeout Value : 5sec */
outportb(SIO_DATA, 0x05);
outportb(SIO_INDEX, 0xFA); /* WDOUT - Enable */
outportb(SIO_DATA, 0x01);
outportb(SIO_INDEX, 0xF5); /* WDT - Conguration */
outportb(SIO_DATA, 0x31);
outportb(SIO_INDEX, 0xAA); /* SIO - Disable */
}