If you want to generate IRQ15 signal to warn your program when watchdog times out, the following table listed the relation of timer factors between
Time Factor | |
0C0H | 3 |
0C1H | 6 |
0C2H | 12 |
0C3H | 18 |
0C4H | 24 |
0C5H | 30 |
0C6H | 36 |
0C7H | 42 |
Table 4-2 Time-Out Setting
NOTE: 1. If you program the watchdog to generate IRQ15 signal when it times out, you should initial IRQ15 interrupt vector and enable the second interrupt controller (8259 PIC) in order to enable CPU to process this interrupt. An interrupt service routine is required too.
2.Before you initial the interrupt vector of IRQ15 and enable the PIC, please enable the watchdog timer previously, otherwise the watchdog timer will generate an interrupt at the time watchdog timer is enabled.
4.4.2Watchdog Timer Enabled
To enable the watchdog timer, you have to output a byte of timer factor to the watchdog register whose address is Base Port+4. The following is a BASICA program which demonstrates how to enable the watchdog timer and set the
1000 | REM Points to command register |
1010 | WD_REG% = BASE_PORT% + 4 |
1020 | REM Timer factor = 84H (or 0C4H) |
1030 | TIMER_FACTOR% = %H84 |
1040 | REM Output factor to watchdog register |
1050 | OUT WD_REG%, TIMER_FACTOR% |
| .,etc. |
4.4.3 Watchdog Timer Trigger
After you enable the watchdog timer, your program must write the same factor as enabling to the watchdog register at least once every
2000 | REM Points to command register |
2010 | WD_REG% = BASE_PORT% + 4 |
2020 | REM Timer factor = 84H (or 0C4H) |
2030 | TIMER_FACTOR% = &H84 |
2040 | REM Output factor to watchdog register |
2050 | OUT WD_REG%, TIMER_FACTOR% |
| .,etc. |
4.4.4 Watchdog Timer Disabled
To disable the watchdog timer, simply write a 00H to the watchdog register.
3000 | REM Points to command register |
3010 | WD_REG% = BASE_PORT% + 4 |
3020 | REM Timer factor = 0 |
3030 | TIMER_FACTOR% = 0 |
3040 | REM Output factor to watchdog register |
3050 | OUT WD_REG%, TIMER_FACTOR% |
| ., etc. |