#ifndef __HS_DIO_H #define __HS_DIO_H typedef enum { LowActive = 0, HighActive }LowHighActive; struct stHSDIOTask__{ char DORunFlag; char DIRunFlag; unsigned char DISecCount; int DORunPeriodTime; int DIRunPeriodTime; }; typedef struct stHSDIOTask__ stHSDIOTask; typedef struct stHSDIn__{ unsigned char in; unsigned char onFlag; unsigned char softRelease; unsigned char pressedSec; //unsigned char SecCount; unsigned int pressTime; unsigned int longPressTimeOne; unsigned int longPressTimeKeep; unsigned int prevTime; unsigned int pressCount; unsigned int longPressCount; void (*Pressed)(struct stHSDIn__*); void (*Released)(struct stHSDIn__*); void (*LongPressedOne)(struct stHSDIn__*); void (*LongPressedKeep)(struct stHSDIn__*); }stHSDIn; struct stHSDOut__{ uint8_t Mode; // 1:Normal, 2:Repeate, 3:Toggle uint8_t LimitMode; uint8_t Trigger; uint8_t Out; uint8_t Run; uint8_t StartFalg; uint8_t Err; uint8_t DischageEnable; int DischargeTimer; int32_t AliveTimer; int32_t AliveCounter; // Not used : -1 int32_t OnDelay; int32_t StopFuncDelay; int32_t StopFuncDelaySet; int32_t RefleshTime; int32_t OnTime; int32_t OffTime; int32_t PulseCounter; int32_t UpdateTime; // MODE3-timer for on/off switching MODE1-Trigger Repeat uint32_t PrevTick; void (*StartFunc)(struct stHSDOut__*); void (*StopFunc)(struct stHSDOut__*); void (*OptFunc)(struct stHSDOut__*); void (*UpdateFunc)(struct stHSDOut__*); }; typedef struct stHSDOut__ stHSDOut; int DITask(); int DOTask(); void DioTask(); #if 0 void HSDataBitInit(); void HSDOutInit(); void HSDOutProcess(stHSDOut* DOut, const stDIOPortMap* PinMap, int Len); void HSDInInit(); void HSDInRun(stHSDIn* DIn, const stDIOPortMap* PinMap, int Len); void HOT_1_Init( char output ); void HSDataBitInRun(stHSDIn* DIn, uint32_t DataBit, int Len); void HSDOut_0_Start(stHSDOut* pDout); void HSDOut_0_Stop(stHSDOut* pDout); void HSDOut_0_Opt(stHSDOut* pDout); void HSDOut_1_Start(stHSDOut* pDout); void HSDOut_1_Stop(stHSDOut* pDout); void HSDOut_1_Opt(stHSDOut* pDout); void HSDOut_2_Start(stHSDOut* pDout); void HSDOut_2_Stop(stHSDOut* pDout); void HSDOut_2_Opt(stHSDOut* pDout); #endif void Key_0_Pressed(stHSDIn* pDin); void Key_0_Released(stHSDIn* pDin); void Key_1_Pressed(stHSDIn* pDin); void Key_1_Released(stHSDIn* pDin); void Key_2_Pressed(stHSDIn* pDin); void Key_2_Released(stHSDIn* pDin); void Key_3_Pressed(stHSDIn* pDin); void Key_3_Released(stHSDIn* pDin); void Key_4_Pressed(stHSDIn* pDin); void Key_4_Released(stHSDIn* pDin); void DevRegLongPressedOne(stHSDIn* pDin); void Trigger_Emg(); void Trigger_LineTest(); void Trigger_RegDev(); void Trigger_DUF(); #if 0 void Key_5_Pressed(stHSDIn* pDin); void Key_5_Released(stHSDIn* pDin); void Key_6_Pressed(stHSDIn* pDin); void Key_6_Released(stHSDIn* pDin); void Key_7_Pressed(stHSDIn* pDin); void Key_7_Released(stHSDIn* pDin); void Key_8_Pressed(stHSDIn* pDin); void Key_8_Released(stHSDIn* pDin); void Key_9_Pressed(stHSDIn* pDin); void Key_9_Released(stHSDIn* pDin); void Key_10_Pressed(stHSDIn* pDin); void Key_10_Released(stHSDIn* pDin); void Key_11_Pressed(stHSDIn* pDin); void Key_11_Released(stHSDIn* pDin); void Key_12_Pressed(stHSDIn* pDin); void Key_12_Released(stHSDIn* pDin); void Key_13_Pressed(stHSDIn* pDin); void Key_13_Released(stHSDIn* pDin); void Key_14_Pressed(stHSDIn* pDin); void Key_14_Released(stHSDIn* pDin); void Key_15_Pressed(stHSDIn* pDin); void Key_15_Released(stHSDIn* pDin); void Key_16_Pressed(stHSDIn* pDin); void Key_16_Released(stHSDIn* pDin); void Key_17_Pressed(stHSDIn* pDin); void Key_17_Released(stHSDIn* pDin); #endif extern uint32_t ADCCurrent[]; extern uint32_t ADCCurrentPos; extern float SetAmp; extern char SetAmpUpdate; extern stHSDOut HSDOut[]; extern stHSDIOTask HSDIOTask; extern uint32_t TimeSlice[]; extern char Key1Flag; extern void Buzzer_Select(uint8_t state); #endif