Sample program – Axiomtek MANO861 User Manual

Page 70

Advertising
background image

MANO861 Mini ITX Board

62

Watchdog Timer

Sample Program


Assembly sample code :

#define NCT6776F_CONFIG_INDEX 0x2e
#define NCT6776F_CONFIG_DATA 0x2f
#define NCT6776F_CONFIG_MODE_ENTER_VALUE 0x87
#define NCT6776F_CONFIG_MODE_EXIT_VALUE 0xAA
#define NCT6776F_LDN_SEL_REGISTER 0x07
#define NCT6776F_ACTIVATE_REGISTER 0x30
#define NCT6776F_LDN_GPIO3 0x09
#define NCT6776F_LDN_WDT 0x08

#ifdef Oem_NCT6776F_WDT_PRESENT
#if Oem_NCT6776F_WDT_PRESENT

UINT8 Data8=0;

IoWrite8(NCT6776F_CONFIG_INDEX, NCT6776F_CONFIG_MODE_ENTER_VALUE);
IoWrite8(NCT6776F_CONFIG_INDEX, NCT6776F_CONFIG_MODE_ENTER_VALUE);

IoWrite8(NCT6776F_CONFIG_INDEX,0x2B);//Pin80 function selection to GP34
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | 0x10;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX, NCT6776F_LDN_SEL_REGISTER);//LDN 0x09
IoWrite8(NCT6776F_CONFIG_DATA, NCT6776F_LDN_GPIO3);

IoWrite8(NCT6776F_CONFIG_INDEX,NCT6776F_ACTIVATE_REGISTER);//CR 30h
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | 0x08;
IoWrite8(NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,0xE4);//Set GP34 to output mode
Data8 = IoRead8(NCT6776F_CONFIG_DATA) & 0xEF;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,0xE5);//Set GP34 to output High
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | 0x10;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,0xEA);// selection Pin 34 to WDTO
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | 0x10;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,NCT6776F_LDN_SEL_REGISTER);//LDN 0x08
IoWrite8 (NCT6776F_CONFIG_DATA , NCT6776F_LDN_WDT1);

IoWrite8(NCT6776F_CONFIG_INDEX,NCT6776F_ACTIVATE_REGISTER);//CR 30h
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | gSetup.WDT_Control;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,0xF5);//Watchdog Timer: CR F5h Bit3
Data8 = IoRead8(NCT6776F_CONFIG_DATA) | gSetup.WDT_CountMode;
IoWrite8 (NCT6776F_CONFIG_DATA , Data8);

IoWrite8(NCT6776F_CONFIG_INDEX,0xF6); //Watchdog Timer Counter Register
IoWrite8(NCT6776F_CONFIG_DATA, gSetup.WDT_TimeOut);

IoWrite8(NCT6776F_CONFIG_INDEX,NCT6776F_CONFIG_MODE_EXIT_VALUE);
#endif // #if Oem_NCT6776F_WDT_PRESENT
#endif // #ifdef Oem_NCT6776F_WDT_PRESENT

Advertising