Intel 6300ESB I/O Controller Watchdog Timer Application Programming Interface
Intel 6300ESB I/O Controller Watchdog Timer Application Programming Interface
Intel 6300ESB I/O Controller Watchdog Timer Application Programming Interface
intel
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT.
EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY
WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL
PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel
products are not intended for use in medical, life saving, life sustaining applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristics of any features or instructions marked reserved or undefined. Intel
reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from
future changes to them.
The Intel Watchdog Timer Application Programming Interface may contain design defects or errors known as errata which may
cause the product to deviate from published specifications. Current characterized errata are available on request.
MPEG is an international standard for video compression/decompression promoted by ISO. Implementations of MPEG CODECs,
or MPEG enabled platforms may require licenses from various entities, including Intel Corporation.
This Datasheet as well as the software described in it is furnished under license and may only be used or copied in accordance
with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without
notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or
liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with
this document.
Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means without the express written consent of Intel Corporation.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be
obtained by calling
1-800-548-4725 or by visiting Intel's website at http://www.intel.com.
AnyPoint, AppChoice, BoardWatch, BunnyPeople, CablePort, Celeron, Chips, CT Media, Dialogic, DM3, EtherExpress, ETOX,
FlashFile, i386, i486, i960, iCOMP, InstantIP, Intel, Intel Centrino, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4,
IntelSX2, Intel Create & Share, Intel GigaBlade, Intel InBusiness, Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetMerge, Intel
NetStructure, Intel Play, Intel Play logo, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel TeamStation, Intel Xeon, Intel
XScale, IPLink, Itanium, MCS, MMX, MMX logo, Optimizer logo, OverDrive, Paragon, PC Dads, PC Parents, PDCharm, Pentium,
Pentium II Xeon, Pentium III Xeon, Performance at Your Command, RemoteExpress, SmartDie, Solutions960, Sound Mark,
StorageExpress, The Computer Inside., The Journey Inside, TokenExpress, VoiceBrick, VTune, and Xircom are trademarks or
registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
*Other names and brands may be claimed as the property of others.
Copyright 2004, Intel Corporation
Controlling Application
iwdtlib.dll
exported Ring 3 interface
User
Kernel
iwdt.sys
Ring 0 library
WdtGetCapabilities(HANDLE );
WdtSetPreloadValues(HANDLE,WDT);
WdtPing(HANDLE,ULONG);
WdtEnable(HANDLE, bool);
WdtLockDevice(HANDLE);
WdtStageOneNotify(HANDLE, S1FUNCTPTR );
WdtCancelNotify();
WdtCheckTimeOutStatus(HANDLE, BOOL);
WdtSetPrescaler(HANDLE, ULONG);
WdtInterruptConnect(HANDLE, ULONG);
WdtRouteInterrupt(HANDLE, ULONG);
WdtSetOutputEnable(HANDLE, ULONG);
NOTE: Extern "C" forces the use of the C naming convention for non C++ functions, you
can omit extern C if your program is written in C++. The WDT_IMPORT is a macro
defined in the iwdtlib.h file that resolves to the string __declspec(dllimport).
Be aware of compiler switches /Tc or /TP, which tell the compiler to ignore the filename
extension and compile the file as C or C++, respectively.
WdtInitLibrary
Initializes the watchdog device library and returns a device handle to the caller.
HANDLE WdtInitLibrary(
PWDT wdtobject
);
Parameters
wdtobject
[in] pointer to a WDT structure.
Return Value
If the function succeeds, the return value is an open handle to the WDT.
If the function fails, the return value is NULL.
Remarks
Use the WdtCloseHandle function to close an object handle returned by WdtInitLibrary.
The WdtInitLibrary function does the following:
Presets the user mode WDT structure.
Returns a valid driver handle to the caller.
Sets up a soft link between the watchdogs kernel mode driver and a user supplied function.
This link is required by the WdtStageOneNotify function to process the user callback.
Requirements
Windows NT/2000/XP
Header: Declared in iwdt.h;.
Library: Use Iwdt.lib.
Example
// A
HANDLE wdHandle;
WDT HR_wDt;
wdHandle = WdtInitLibrary(&HR_wDt);
WdtGetDeviceHandle (Obsolete)
Opens the watchdog device and returns a valid device handle to the caller. This function has
been replaced by the WdtInitLibrary.
HANDLE WdtGetDeviceHandle();
Parameters
No Parameters
Return Value
If the function succeeds, the return value is an open handle to the WDT.
If the function fails, the return value is WDT_FAILURE.
Remarks
Use the WdtCloseHandle function to close an object handle returned by
WdtGetDEviceHandle.
Requirements
Windows NT/2000/XP
Header: Declared in iwdt.h;.
Library: Use Iwdt.lib.
Example
// A
HANDLE wdHandle;
wdHandle = WdtGetDeviceHandle();
WdtGetStatus
Queries the WDT device about its status, returning the results to the caller in the WdtControl
structure.
HANDLE WdtGetStatus(
HANDLE wdHandle,
SAWD_CTRL *WdtStatus
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
wdt
[out] pointer to structure that is populated with the watchdog status.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function returns the device status bits, configuration register bits and Lock register bits
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Query driver for the watchdog timers status.
WdtGetStatus(wdHandle, &WdtStatus);
WdtGetDriverVersion
Returns the watchdog drivers version number as an unsigned long.
HANDLE WdtGetDriverVersion();
Parameters
hFile
[in] Handle to the device returned by WdtGetDeviceHandle.
Return Value
If the function succeeds, the return value is unsigned long composed of a major and minor
version code.
If the function fails, the return value is 0x0FFFFFFFF.
Remarks
The lower 16 bits represent the minor version, while the upper 16 bits represent the major
version number. This same version number is also reported in the WdtGetCapabilities
function in the SAWD_CAPABILITY_OUT_BUFF structure.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Query the driver for it version number then format as an ASCII
// string
Char buffer[40];
ULONG
DrvVersion;
USHORT Lo,Hi;
DrvVersion=WdtGetDriverVersion();
Lo=LOWORD(DrvVersion);
Hi=HIWORD (DrvVersion);
sprintf(buffer, "Driver Version %u.%u",Hi,Lo);
WdtGetLibraryVersion
Returns the watchdog libraries version number as an unsigned long.
HANDLE WdtGetLibraryVersion();
Parameters
No Parameters
Return Value
The return value is unsigned long composed of a major and minor version code.
Remarks
The lower 16 bits represent the minor version, while the upper 16 bits represent the major
version number.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Query the library for it version number then format as an ASCII //
string
Char buffer[40];
ULONG
LibVersion;
USHORT Lo,Hi;
LibVersion=WdtGetLibraryVersion();
Lo=LOWORD(LibVersion);
Hi=HIWORD (LibVersion);
sprintf(buffer, "Library Version %u.%u",Hi,Lo);
10
WdtEnable
Starts or stops the counter depending on the submitted control value.
BOOL WdtEnable(
HANDLE wdHandle,
BOOL control = TRUE or FALSE,
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
control
TRUE indicate a request to start the WDT. FALSE indicates a request to stop the
WDT.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE. To get extended error information
Remarks
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Start Watchdog timer.
WdtEnable(wdHandle,TRUE);
// Stop Watchdog timer.
WdtEnable(wdHandle,FALSE);
11
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
wdtCapStruct
[out] pointer to structure that is populated with the WDT capabilities.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function returns the version number of the driver and the minimum and maximum
preload values that can be set.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Query driver for the watchdog timers capabilities
WdtGetCapabilities(wdHandle, &WdtCapStruct);
12
WdtLockDevice
Locks the watchdog device to prevent any further configuration changes. Also prevents the
watchdog device from being stopped or started.
HANDLE WdtLockDevice (
HANDLE wdHandle
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
Locks the configuration register, i.e., the WDT_TOUT_CNF and WDT_ENABLE bits
cannot be changed. This is also a Write-Once bit. It cannot be changed until either the power
is cycled or a hard reset occurs.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Lock the watchdog timer to prevent any further changes
BOOL status;
status = WdtLockDevice(wdHandle);
13
WdtSetPreloadValues
Load preload register 1 and preload register 2.
BOOL WdtSetPreload(
HANDLE wdHandle,
WDT wdtConfig
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
wdtconfig
[in] pointer to structure that contains WDT preload values and other configuration
values.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
Loading the preload register does not load the 35 bit down counter and will not prevent the
WDT from timing out. Use the WdtPing function to transfer the preload values to the down
counter.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
wdConfig.preload1=12323;
wdConfig.preload2=12000
WdtSetPreload(wdHandle,wdtconfig);
14
WdtPing
Ping the WDT to prevent the WDT from timing out.
HANDLE WdtPing(
HANDLE wdHandle,
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function is used to prevent a timeout occurring. During stage 1 this function moves the
value in preload register 1 to the 35-bit down counter. During stage 2 this function moves the
data from preload register 2 to the 35-bit down counter.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Ping the watchdog timer.
BOOL status;
status = WdtPing(wdHandle);
15
WdtSetPresecaler
Specify which Presecalar mode of operation is used by the WDT.
BOOL WdtSetPresecaler(
HANDLE wdHandle,
BOOL
BitPat
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
BitPat
[in] Unsigned long bit pattern defined in the iwdtlib.h.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function is used to select a Presecalar mode for the WDTs main down counter. There
are 2 modes available:
The default mode specifies that the 20-bit preload value is written into bits 34:15 of the
down counter, resulting in a 1 KHz clock.
The fast mode specifies that the preload value is loaded into bits 24:5 of the down
counter, resulting in a 1 MHz clock.
You must specify one of the two defined states, WDT_NORMAL_PRESCALER or
WDT_FAST_PRESCALER. Any other values will cause the function to fail.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // Set Presecalar to default mode.
WdtSetPresecaler(wdHandle, WDT_NORMAL_PRESCALER);
//Set Presecalar to FAST mode
WdtSetPresecaler(wdHandle, WDT_FAST_PRESCALER);
16
WdtInterruptConnect
Manually connects the WDT IRQ to the drivers interrupt service routine.
BOOL WdtRouteInterrup(
HANDLE wdHandle,
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function is only needed if Windows is unable to assign INTR resources at driver
initialization. Intel 6300ESB I/O Controller A1 silicon is missing two interrupt registers as
per PCI spec, Interrupt Pin and Line registers logic and is unable to enumerate the WDT
device resources.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // connect the IO-APIC IRQ to the drivers ISR
WdtInterruptConnect(wdHandle);
17
WdtRouteInterrupt
Specify how the WDT should report the occurrence of a stage 1 interrupt.
BOOL WdtRouteInterrup(
HANDLE wdHandle,
ULONG BitPat
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
BitPat
[in] Unsigned long bit pattern defined in the iwdtlib.h.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
The WDT supports both IRQ and SMI reporting of timeouts.
You must specify 1 of the 3 defined states,
WDT_INTR_IRQ, WDT_INTR_SMI or WDT_INTR_DISABLE
Any other values will cause the function to fail. WARNING, the SMI define is in place to
allow the user to verify that the SMI generation works correctly. However, the driver has no
capabilities to handle WDT-generated SM interrupts and may result in crashing your
platform if the BIOS does not implement a default SMI handler.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // Specify the use of IOAPIC - IRQ.
WdtRouteInterrupt(wdHandle, WDT_INTR_IRQ);
18
WdtSetOutputEnable
Enable or Disable the toggling of the external WDT_OUTPUT pin.
BOOL WdtSetOutEnable(
HANDLE wdHandle,
ULONG BitPat
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
BitPat
[in] Unsigned long bit pattern defined in the iwdtlib.h.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function is used to control whether the WDT_OUTPUT pin is toggled if the WDT times
out. By default this feature is enabled.
You must specify one of the two defined states,
WDT_ENABLE_EXT_OUT or WDT_DISABLE_EXT_OUT
Any other values will cause the function to fail.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // Specify that the WDT_OUTPUT pin is toggled on time out.
WdtSetOutEnable(wdHandle, WDT_ENABLE_EXT_OUT);
19
WdtReadPreloadValue
Read back a preload value.
ULONG WdtReadPreloadValue(
HANDLE wdHandle,
ULONG BitPat
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
BitPat
[in] Unsigned long bit pattern defined in the iwdtlib.h.
Return Value
If the function succeeds, the return is the current value in either the first or second preload
register as specified in the BitPat parameter.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function is useful verifying that the value placed in one or both of the preload registers
is correct.
You must specify one of the two defined counters.
WDT_PRELOAD_1 or WDT_PRELOAD_2
Any other values will cause the function to fail.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // Read the current value of preload register number 1.
ULONG Preload_1=0;
Preload_1=WdtReadPreloadValue(wdHandle, WDT_PRELOAD_1);
20
WdtCheckTimeOutStatus
Check if a timeout of the WDT has occurred. Optionally reset the timeout flag if the Boolean
Reset flag is TRUE.
int WdtCheckTimeOutStatus(
HANDLE wdHandle,
BOOL Reset
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
BitPat
[in] Boolean flag, setting to TRUE will reset this bit flag.
Return Value
If the function succeeds, the return value is a 0 or 1. A 1 indicates that the second stage of the
WDT reached zero after the first stage counted down to zero.
If the function fails, the return value is a -1.
Remarks
This function returns the current setting of the WDT_TIMEOUT bit in the memory mapped
Reload Register. This bit is set to 1 if the 35-bit down counter reaches zero for the second
time in a row.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example // Check if a time out has occurred, then clear the bit flag to (0).
WdtCheckTimeOutStatus(wdHandle, TRUE);
21
WdtConfigure
Set the configuration bits in the WDT.
BOOL WdtConfigure(
HANDLE wdHandle,
WDT wdtConfig
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
wdtconfig
[out] pointer to structure that contains WDT preload values and other configuration
values.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function allows the advanced user to directly set bits in the configuration register. Users
of this function are assumed to have detailed knowledge of the Intel 6300ESB I/O
Controller WDT.
Requirements
Windows NT/2000/XP
Header: Declared in iwdt.h;.
Library: Use iwdt.lib.
Example
/* Configure the watchdog timer to enable toggling of the WDT_OUTPUT_PIN,
route interrupts to IRQ 10 and select Presecalar 1 for loading the down
counter.
*/
wdtConfig.ConfigReg=WDT_ENABLE_TOGGLE | WDT_INTR_IRQ10 |WDT_PRE_1;
22
WdtConfigure(wdHandle,wdtconfig);
WdtSetMode
Sets the device to run in WDT mode or free running mode.
BOOL WdtSetMode(
HANDLE wdHandle,
ULONG mode
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
mode
[in] Unsigned long bit pattern defined in the iwdtlib.h.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function allows you switch the WDT to a free running counter. In free running mode the
down counter is automatically loaded every time the decrementer reaches zero.
You must specify one of the two defined states, WDT_WATCHDOG_MODE or
WDT_FREE_RUN_MODE. Any other values will cause the function to fail.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example
// Set the device to watchdog mode.
WdtSetMode(wdHandle, ENABLE_WDT_MODE);
// Set the device to free running mode
23
WdtSetMode(wdHandle, ENABLE_FREE_MODE);
24
WdtStageOneNotify
Set up a callback to a user-supplied function that will handle interrupt processing when the
WDT enters stage 1.
BOOL WdtStageOneNotify(
HANDLE wdHandle,
S1FUNCTPTR lpHandleIntProc
);
Parameters
wdHandle
[in] Handle to the device returned by WdtGetDeviceHandle.
lpHandleIntProc
[in] Application-defined function that is called by the library.
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function creates a low priority thread that monitors shared user/kernel synchronization
object, then returns to the caller. The new thread calls the WaitForSingleObject function to
wait for the driver to signal that a stage 1 interrupt has occurred.
The function uses a semaphore gate to prevent the user from creating multiple instances of
the user callback thread, i.e., attempting to call this function after a previous call will result in
the function returning a FALSE back to the caller. You must first cancel the waiting thread
before calling this function again.
Passing a NULL for the callback address will terminate a waiting thread
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example// Assign the user-defined function that the watchdog library will call
WdtStageOneNotify(wdHandle, S1FUNCTPTR(Stage1CallBack));
25
WdtCancelNotify
Cancel CALLBACK notification that was set up using the WdtStageOneNotify call.
BOOL WdtCancelNotify(
void
);
Parameters
No Parameters needed
Return Value
If the function succeeds, the return value is WDT_SUCCESS.
If the function fails, the return value is WDT_FAILURE.
Remarks
This function frees the waiting stage 1 monitor thread synchronization object, then returns to
the caller. Any new stage interrupt activity will still be serviced by the drivers ISR; however,
the user stage 1 function will not be called.
Requirements
Windows NT/2000/XP
Header: Declared in iwdtlib.h;.
Library: Use iwdtlib.lib.
Example// cancel the user-defined function that the watchdog library will call
WdtCancelNotify();
26
return status;
}
27
Running;
Mode;
Presecalar;
OutputEnable;
ULONG
ULONG
ULONG
ULONG
USHORT
USHORT
USHORT
InterruptRouting;
Refresh;
PreLoad1;
PreLoad2;
ConfigReg;
LockReg;
DeviceStatus;
HANDLE
ULONG
BOOL
UHSORT
UHSORT
UHSORT
UHSORT
wdtHandle;
InitStatus;
ErrorMsgBox;
DriverVersionLo;
DriverVersionHi;
LibraryVersionLo;
LibraryVersionHi;
}WDT, *PWDT;
Note: The WdtInitLibrary function call will initialize the preload
registers, set the initial refresh rate to once per second, set the
execution flag to IDLE and save off a copy of the drivers handle.
28
Function Passed
Function Failed
Input constants:
WDT_ENABLE
WDT_DISABLE
WDT_INTR_IRQ
WDT_INTR_SMI
WDT_INTR_DISABLE
WDT_NORMAL_PRESCALER
WDT_FAST_PRESCALER
WDT_DISABLE_EXT_OUT
WDT_ENABLE_EXT_OUT
WDT_PRELOAD_1
WDT_PRELOAD_2
WDT_WATCHDOG_MODE
WDT_FREE_RUN_MODE
0x00
0x02
0x03
0x0FFFFFFFB // Bit pattern to set bit 2 to a zero
0x04 // Bit pattern to set bit 2 to a one
0x0FFFFFFDF // Bit pattern to set bit 5 to a zero
0x20 // Bit pattern to set bit 5 to a one
0x01
0x02
0x0FFFFFFFB // Bit pattern to set bit 2 to a zero
0x04
29
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: