/**
 * @file   IB43config.h
 * @author StepTechnica
 * @date   Mar 15, 2023
 * 
 * @brief Evaluation Board 用ヘッダーファイル「IB43ボード設定」
 * 
 * @copyright (C) 2022- StepTechnica Co.,Ltd.
 * 
 * このソフトウェアは、コピー利用、配布、変更の追加、変更を加えたもの再配布、商用利用、有料販売など、どなたも自由にお使いいただくことができます。
 * このソフトウェアには保証はついていません。
 * このソフトウェアを利用したことで問題が起きた際に、ソフトウェアの製作者は一切の責任を負いません。
 * 
 */

#ifndef MKY_IB43_H
#define MKY_IB43_H

/* -----------------------------------------------------------------------------
 * #include
 */

#include "MKYDevice.h"
#include "MKY43.h"

/* -----------------------------------------------------------------------------
 * enumタグ定義 (typedefを同時に行う)
 */
//MKYデバイスがどのバスでつながっているか。
enum en_mky_bus
{
	MKY_BUS_UNKNOWN,
	MKY_BUS_16,
	MKY_BUS_8,
	MKY_BUS_SPI
};
typedef enum en_mky_bus EN_MKY_BUS;


//エンディアン
enum en_mky_endian
{
	MKY_ENDIAN_UNKNOWN,
	MKY_ENDIAN_LITTLE,
	MKY_ENDIAN_BIG,
};
typedef enum en_mky_endian EN_MKY_ENDIAN;


/* -----------------------------------------------------------------------------
 * 関数プロトタイプ宣言
 */

extern EN_MKY_BUS ReadMkyBus(void);
extern EN_MKY_BUS GetMkyBus(void);
extern EN_MKY_ENDIAN GetMkyEndian(void);
extern void SetAccessEndian(AccessEndian endian);
extern AccessEndian GetAccessEndian();

extern char readSW5_1(void);
extern char readSW5_2(void);
extern char readSW5_3(void);
extern char readSW5_4(void);
extern char readSW5_5(void);
extern char readSW5_6(void);
extern char readSW5_7(void);
extern char readSW5_8(void);

extern void drvLED6 (char sw);
extern void drvLED7 (char sw);
extern void drvLED8 (char sw);
extern void drvLED9 (char sw);
extern void drvLED10(char sw);
extern void drvLED11(char sw);
extern void drvLED12(char sw);
extern void drvLED13(char sw);

extern void drvMKYRESET(char sw);

extern char isInt0on(void);
extern char isInt1on(void);
extern void setSPI2_CS(char sw);
extern void setSPI4_CS(char sw);


extern void LedSw_main(void);

extern void blinkLED1(void);

#endif//MKY_IB43_H
