// SMBusLib.h : SMBusLib DLL 的主要標頭檔
//

#pragma once

#ifndef __AFXWIN_H__
	#error "對 PCH 包含此檔案前先包含 'stdafx.h'"
#endif

#include "resource.h"		// 主要符號

#ifdef __cplusplus
#define	LibExport extern "C" __declspec(dllexport)
#else
#define LibExport __declspec(dllexport)
#endif

LibExport int lib_init();
LibExport void lib_close();

//===========================================================================
// GPIO
//===========================================================================
//direction register value 0=input 1=output ex:0x00 = input mode;0xFF = output mode
#define PORT0_DATA 0x78
#define PORT0_REG 0x98
#define PORT1_DATA 0x79
#define PORT1_REG 0x99

LibExport byte readPort(byte nPort);
LibExport void writePort(byte nPort, byte dbValue);

//===========================================================================
// Watchdog
//===========================================================================

//Watchdog Event
#define IRQ3      0x10
#define IRQ4      0x20
#define IRQ5      0x30
#define IRQ6      0x40
#define IRQ7      0x50
#define IRQ9      0x60
#define IRQ10     0x70
#define IRQ11     0x80
#define IRQ12     0x90
#define IRQ14     0xA0
#define IRQ15     0xB0
#define NMI       0xC0
#define SYS_RESET 0xD0

LibExport void wdt_start(int nTime, byte nEvent);
LibExport void wdt_reset();
LibExport void wdt_disable();

//===========================================================================
// I2C
//===========================================================================
LibExport int i2c_read_byte(byte device_address, byte index, byte *data);
LibExport int i2c_write_byte(byte device_address, byte index, byte data);