148 lines
4.4 KiB
C
148 lines
4.4 KiB
C
/****************************************************************************
|
|
文件名称 : chrg_gpio.h
|
|
完成日期 :
|
|
当前版本号 : V1.0
|
|
主要功能 :
|
|
GPIO口宏定义。
|
|
版本历史 : 创建原始版本
|
|
说明 :
|
|
******************************************************************************/
|
|
|
|
#ifndef __CHRG_GPIO_H__
|
|
#define __CHRG_GPIO_H__
|
|
|
|
#include <rtthread.h>
|
|
|
|
#include <drv_gpio.h>
|
|
|
|
// LED 灯脚
|
|
#define GPO_PIN_LED1 GET_PIN(C, 13) // LED1
|
|
#define GPO_PIN_LED2 GET_PIN(C, 14) // LED2
|
|
#define GPO_PIN_LED3 GET_PIN(C, 15) // LED3
|
|
|
|
// 北向 source/sink 通信口选通
|
|
#define GPO_PIN_UART_SW1 GET_PIN(C, 0) // 通道1组
|
|
#define GPO_PIN_UART_SW2 GET_PIN(A, 0) // 通道2组
|
|
#define GPO_PIN_UART_SW3 GET_PIN(A, 6) // 通道3组
|
|
#define GPO_PIN_UART_SW4 GET_PIN(B, 12) // 通道4组
|
|
|
|
// 北向继电器1组
|
|
#define GPO_PIN_CH1_P0 GET_PIN(C, 3) // P0 connect K1/K3 for sink
|
|
#define GPO_PIN_CH1_P1 GET_PIN(C, 2) // P1 connect K2/K4 for source
|
|
#define GPO_PIN_CH1_P2 GET_PIN(C, 1) // P2 connect K5 for GND/PGND
|
|
|
|
// 北向继电器2组
|
|
#define GPO_PIN_CH2_P0 GET_PIN(A, 5) // P0
|
|
#define GPO_PIN_CH2_P1 GET_PIN(A, 4) // P1
|
|
#define GPO_PIN_CH2_P2 GET_PIN(A, 1) // P2
|
|
|
|
// 北向继电器3组
|
|
#define GPO_PIN_CH3_P0 GET_PIN(C, 5) // P0
|
|
#define GPO_PIN_CH3_P1 GET_PIN(C, 4) // P1
|
|
#define GPO_PIN_CH3_P2 GET_PIN(A, 7) // P2
|
|
|
|
// 北向继电器4组
|
|
#define GPO_PIN_CH4_P0 GET_PIN(B, 15) // P0
|
|
#define GPO_PIN_CH4_P1 GET_PIN(B, 14) // P1
|
|
#define GPO_PIN_CH4_P2 GET_PIN(B, 13) // P2
|
|
|
|
// 北向通信口选通 U14
|
|
#define GPO_PIN_NOR_SW_A GET_PIN(B, 0)
|
|
#define GPO_PIN_NOR_SW_B GET_PIN(B, 1)
|
|
|
|
// 南向1级通信口选通 U23
|
|
#define GPO_PIN_SOU_SW_LV1_A GET_PIN(C, 8)
|
|
#define GPO_PIN_SOU_SW_LV1_B GET_PIN(C, 9)
|
|
|
|
// 南向2级通信口选通 左半 U24
|
|
#define GPO_PIN_SOU_SW_LV2_A1 GET_PIN(A, 15)
|
|
#define GPO_PIN_SOU_SW_LV2_B1 GET_PIN(C, 10)
|
|
|
|
// 南向2级通信口选通 右半 U25
|
|
#define GPO_PIN_SOU_SW_LV2_A2 GET_PIN(C, 11)
|
|
#define GPO_PIN_SOU_SW_LV2_B2 GET_PIN(C, 12)
|
|
|
|
typedef enum {
|
|
IDX_GPO_LED1 = 0, // 绿灯
|
|
IDX_GPO_LED2,
|
|
IDX_GPO_LED3,
|
|
|
|
IDX_GPO_UART_SW1, // source/sink U1 A
|
|
IDX_GPO_UART_SW2, // source/sink U12 A
|
|
IDX_GPO_UART_SW3, // source/sink U23 A
|
|
IDX_GPO_UART_SW4, // source/sink U34 A
|
|
|
|
IDX_GPO_CH1_P0, // 继电器1组 K1/K3
|
|
IDX_GPO_CH1_P1, // 继电器1组 K2/K4
|
|
IDX_GPO_CH1_P2, // 继电器1组 K5
|
|
|
|
IDX_GPO_CH2_P0, // 继电器2组 K1/K3
|
|
IDX_GPO_CH2_P1, // 继电器2组 K2/K4
|
|
IDX_GPO_CH2_P2, // 继电器2组 K5
|
|
|
|
IDX_GPO_CH3_P0, // 继电器3组 K1/K3
|
|
IDX_GPO_CH3_P1, // 继电器3组 K2/K4
|
|
IDX_GPO_CH3_P2, // 继电器3组 K5
|
|
|
|
IDX_GPO_CH4_P0, // 继电器4组 K1/K3
|
|
IDX_GPO_CH4_P1, // 继电器4组 K2/K4
|
|
IDX_GPO_CH4_P2, // 继电器4组 K5
|
|
|
|
IDX_GPO_NOR_SW_A, // U14 北向A
|
|
IDX_GPO_NOR_SW_B, // U14 北向B
|
|
|
|
IDX_GPO_SOU_SW_LV1_A, // U23 南向1级A
|
|
IDX_GPO_SOU_SW_LV1_B, // U23 南向1级B
|
|
IDX_GPO_SOU_SW_LV2_A1, // U24 南向2级左A
|
|
IDX_GPO_SOU_SW_LV2_B1, // U24 南向2级左B
|
|
IDX_GPO_SOU_SW_LV2_A2, // U25 南向2级右A
|
|
IDX_GPO_SOU_SW_LV2_B2, // U25 南向2级右B
|
|
|
|
TOTAL_IOS
|
|
} eIDX_IO;
|
|
|
|
|
|
struct chrg_io_t {
|
|
rt_base_t base; // 管脚号
|
|
rt_ssize_t mode; // 方向 输出/输入
|
|
rt_uint8_t value; // 当前值 (输入时不配置)
|
|
};
|
|
|
|
extern struct chrg_io_t chrgios[TOTAL_IOS];
|
|
|
|
/*****************************************************************
|
|
函数名称: chrg_gpio_mode_set
|
|
函数描述: 修改 PIN 引脚方向。
|
|
输入参数: idx 引脚索引, mode : 输出/输入
|
|
输出参数: -
|
|
返回说明: <0: 异常,=0: 正常
|
|
其它说明: -
|
|
*****************************************************************/
|
|
extern int chrg_gpio_mode_set (eIDX_IO idx, rt_uint8_t mode);
|
|
|
|
/*****************************************************************
|
|
函数名称: chrg_gpio_get
|
|
函数描述: 读取引脚当前值。
|
|
输入参数: idx 引脚索引
|
|
输出参数: -
|
|
返回说明: <0: 异常,=0: 低电平, =1: 高电平
|
|
其它说明: -
|
|
*****************************************************************/
|
|
extern int chrg_gpio_get (eIDX_IO idx);
|
|
|
|
/*****************************************************************
|
|
函数名称: chrg_gpio_set
|
|
函数描述: 设置输出引脚高低电平。
|
|
输入参数: idx 引脚索引, value 高/低电平
|
|
输出参数: -
|
|
返回说明: <0: 异常,=0: 正常
|
|
其它说明: -
|
|
*****************************************************************/
|
|
extern int chrg_gpio_set (eIDX_IO idx, rt_uint8_t value);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|