#include "TYW_stdint.h"
#include "GPIO.h"
#include "Signal_Remap.h"
#include "RTE_PWM.h"
#include "TimerB.h"
#include "RTE_GPIO.h"


#define IO_OUT_P_01 GPIO_OUT_PORT10_PIN06
#define IO_OUT_P_02 GPIO_OUT_PORT09_PIN00
#define IO_OUT_P_03 GPIO_OUT_APORT00_PIN04
#define IO_OUT_P_04 GPIO_OUT_APORT00_PIN05
#define IO_OUT_P_05 GPIO_OUT_APORT00_PIN06
#define IO_OUT_P_06 GPIO_OUT_APORT00_PIN13
#define IO_OUT_P_07 GPIO_OUT_APORT00_PIN14
#define IO_OUT_P_08 GPIO_OUT_PORT08_PIN09
#define IO_OUT_P_09 GPIO_OUT_PORT08_PIN08
#define IO_OUT_P_10 GPIO_OUT_PORT00_PIN07

#define IO_OUT_N_01 GPIO_OUT_PORT09_PIN06
#define IO_OUT_N_02 GPIO_OUT_PORT09_PIN05
#define IO_OUT_N_03 GPIO_OUT_PORT09_PIN04
#define IO_OUT_N_04 GPIO_OUT_PORT09_PIN03
#define IO_OUT_N_05 GPIO_OUT_PORT09_PIN02
#define IO_OUT_N_06 GPIO_OUT_PORT09_PIN01
#define IO_OUT_N_07 GPIO_OUT_PORT10_PIN07
#define IO_OUT_N_08 GPIO_OUT_PORT10_PIN03
#define IO_OUT_N_09 GPIO_OUT_PORT10_PIN04
#define IO_OUT_N_10 GPIO_OUT_PORT00_PIN08



void SetIO_OUT_P_01(uint8_t val)
{
    IO_OUT_P_01 = val;
}
void SetIO_OUT_P_02(uint8_t val)
{
    IO_OUT_P_02 = val;
}
void SetIO_OUT_P_03(uint8_t val)
{
    IO_OUT_P_03 = val;
}
void SetIO_OUT_P_04(uint8_t val)
{
    IO_OUT_P_04 = val;
}
void SetIO_OUT_P_05(uint8_t val)
{
    IO_OUT_P_05 = val;
}
void SetIO_OUT_P_06(uint8_t val)
{
    IO_OUT_P_06 = val;
}
void SetIO_OUT_P_07(uint8_t val)
{
    IO_OUT_P_07 = val;
}
void SetIO_OUT_P_08(uint8_t val)
{
    IO_OUT_P_08 = val;
}
void SetIO_OUT_P_09(uint8_t val)
{
    IO_OUT_P_09 = val;
}
void SetIO_OUT_P_10(uint8_t val)
{
    IO_OUT_P_10 = val;
}
void SetIO_OUT_N_01(uint8_t val)
{
    IO_OUT_N_01 = val;
}
void SetIO_OUT_N_02(uint8_t val)
{
    IO_OUT_N_02 = val;
}
void SetIO_OUT_N_03(uint8_t val)
{
    IO_OUT_N_03 = val;
}
void SetIO_OUT_N_04(uint8_t val)
{
    IO_OUT_N_04 = val;
}
void SetIO_OUT_N_05(uint8_t val)
{
    IO_OUT_N_05 = val;
}
void SetIO_OUT_N_06(uint8_t val)
{
    IO_OUT_N_06 = val;
}
void SetIO_OUT_N_07(uint8_t val)
{
    IO_OUT_N_07 = val;
}
void SetIO_OUT_N_08(uint8_t val)
{
    IO_OUT_N_08 = val;
}
void SetIO_OUT_N_09(uint8_t val)
{
    IO_OUT_N_09 = val;
}
void SetIO_OUT_N_10(uint8_t val)
{
    IO_OUT_N_10 = val;
}



void SetIO_OUT_P_01(uint8_t val);
void SetIO_OUT_P_02(uint8_t val);
void SetIO_OUT_P_03(uint8_t val);
void SetIO_OUT_P_04(uint8_t val);
void SetIO_OUT_P_05(uint8_t val);
void SetIO_OUT_P_06(uint8_t val);
void SetIO_OUT_P_07(uint8_t val);
void SetIO_OUT_P_08(uint8_t val);
void SetIO_OUT_P_09(uint8_t val);
void SetIO_OUT_P_10(uint8_t val);
void SetIO_OUT_N_01(uint8_t val);
void SetIO_OUT_N_02(uint8_t val);
void SetIO_OUT_N_03(uint8_t val);
void SetIO_OUT_N_04(uint8_t val);
void SetIO_OUT_N_05(uint8_t val);
void SetIO_OUT_N_06(uint8_t val);
void SetIO_OUT_N_07(uint8_t val);
void SetIO_OUT_N_08(uint8_t val);
void SetIO_OUT_N_09(uint8_t val);
void SetIO_OUT_N_10(uint8_t val);

const st_Port_IO F1KM_16843_Port_IO_P [20] = {
    &SetIO_OUT_P_01,//正控
    &SetIO_OUT_P_02,//正控
    &SetIO_OUT_P_03,//正控
    &SetIO_OUT_P_04,//正控
    &SetIO_OUT_P_05,//正控
    &SetIO_OUT_P_06,//正控
    &SetIO_OUT_P_07,//正控
    &SetIO_OUT_P_08,//正控
    &SetIO_OUT_P_09,//正控
    &SetIO_OUT_P_10,//正控
    &SetIO_OUT_N_01,//负控
    &SetIO_OUT_N_02,//负控
    &SetIO_OUT_N_03,//负控
    &SetIO_OUT_N_04,//负控
    &SetIO_OUT_N_05,//负控
    &SetIO_OUT_N_06,//负控
    &SetIO_OUT_N_07,//负控
    &SetIO_OUT_N_08,//负控
    &SetIO_OUT_N_09,//负控
    &SetIO_OUT_N_10,//负控
};

void SetPWM_OUT_01(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(1, Freq);
    PWM_Channel_Set_Duty(1, Duty);
}

void SetPWM_OUT_03(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(3, Freq);
    PWM_Channel_Set_Duty(3, Duty);
}

void SetPWM_OUT_05(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(5, Freq);
    PWM_Channel_Set_Duty(5, Duty);
}

void SetPWM_OUT_07(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(7, Freq);
    PWM_Channel_Set_Duty(7, Duty);
}

void SetPWM_OUT_09(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(9, Freq);
    PWM_Channel_Set_Duty(9, Duty);
}

void SetPWM_OUT_11(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(11, Freq);
    PWM_Channel_Set_Duty(11, Duty);
}

void SetPWM_OUT_13(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(13, Freq);
    PWM_Channel_Set_Duty(13, Duty);
}

void SetPWM_OUT_15(uint32_t Duty, uint32_t Freq)
{
    PWM_Channel_Set_Freq(15, Freq);
    PWM_Channel_Set_Duty(15, Duty);
}

void SetPWM_OUT_01(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_03(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_05(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_07(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_09(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_11(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_13(uint32_t Duty, uint32_t Freq);

void SetPWM_OUT_15(uint32_t Duty, uint32_t Freq);

const st_Port_PWM F1KM_16843_Port_PWM_Out [8] = {
    &SetPWM_OUT_01,
    &SetPWM_OUT_03,
    &SetPWM_OUT_05,
    &SetPWM_OUT_07,
    &SetPWM_OUT_09,
    &SetPWM_OUT_11,
    &SetPWM_OUT_13,
    &SetPWM_OUT_15,
};
