Appendix a, Programming watchdog timer – Lanner LEC-7105 User Manual

Page 25

Advertising
background image

25

Programming Watchdog Timer

Embedded and Industrial Computing

Appendix A

#define RUNTIME_BYPASS_PAIR2_ENABLE (0)
#define RUNTIME_BYPASS_PAIR2_DISABLE ( S I O _

GPIO_60_BIT)

/*Offmode bypass definitions */
#define OFFMODE_BYPASS_PAIR1_LDN

(9)

#define OFFMODE_BYPASS_PAIR1_REG

(0xe5)

#define OFFMODE_BYPASS_PAIR1_BIT

( S I O _

GPIO_22_BIT | SIO_GPIO_23_BIT)
#define OFFMODE_BYPASS_PAIR1_ENABLE S

I

O

_

GPIO_22_BIT
#define OFFMODE_BYPASS_PAIR1_DISABLE S

I

O

_

GPIO_23_BIT

#define OFFMODE_BYPASS_PAIR2_LDN

(7)

#define OFFMODE_BYPASS_PAIR2_REG

(0xe1)

#define OFFMODE_BYPASS_PAIR2_BIT

( S I O _

GPIO_30_BIT | SIO_GPIO_31_BIT)
#define OFFMODE_BYPASS_PAIR2_ENABLE S

I

O

_

GPIO_30_BIT
#define OFFMODE_BYPASS_PAIR2_DISABLE S

I

O

_

GPIO_31_BIT

void start_watchdog_timer(int watchdog_time)
{

unsigned char tmp;

/* clear timeout value */

write_w83627_reg(0x08, 0xf6, 0x00);

/* set to count with second */

tmp=read_w83627_reg(0x08, 0xF5);

tmp &= ~(0x08);

write_w83627_reg(0x08, 0xF5, tmp);

/* clear status bit */

tmp=read_w83627_reg(0x08, 0xf7);

tmp &= ~(0x10);

write_w83627_reg(0x08, 0xf7, tmp);

/* set WDT Reset Event */

tmp=read_w83627_reg(0x08, 0xF7);

tmp = (0x00);

write_w83627_reg(0x08, 0xF7, tmp);

/* Set function enable */

write_w83627_reg(0x08, 0x30, 1);

/* fill in timeout value */

write_w83627_reg(0x08, 0xf6, watchdog_time);


return;

}

void stop_watchdog_timer(void)
{

/* stop timer */

write_w83627_reg(0x08, 0xf6, 0);

}

int wd_gpio_init(void)
{

unsigned char tmp;

int ret=0;

/* Set W83627 multiplex pin to WDTO function */

tmp=read_w83627_reg(0x00, 0x2b);

tmp &= ~(0x0c);

tmp |= 0x04;

write_w83627_reg(0x00, 0x2b, tmp);


/* clear timeout value */

write_w83627_reg(0x08, 0xf6, 0x00);

/* Enable LDN8 watchdog function */

tmp=read_w83627_reg(0x08, 0x30);

tmp |= 1;

Advertising