#ifndef _LMCAL_UART_CFG_H
#define _LMCAL_UART_CFG_H

//******************************************** Включаемые файлы *********************************************


//******************************************* Локальные константы *******************************************

// Номера UART в цифровом формате
#define LMCAL_UART0                   (0U)
#define LMCAL_UART1                   (1U)
#define LMCAL_UART2                   (2U)
#define LMCAL_UART3                   (3U)
#define LMCAL_UART4                   (4U)
#define LMCAL_UART5                   (5U)
#define LMCAL_UART6                   (6U)
#define LMCAL_UART7                   (7U)
#define LMCAL_UART8                   (8U)
#define LMCAL_UART9                   (9U)
#define LMCAL_UART10                  (10U)

// Номера портов в буквенном формате
#define LMCAL_UART_PORTA              (0U)
#define LMCAL_UART_PORTB              (1U)
#define LMCAL_UART_PORTC              (2U)
#define LMCAL_UART_PORTD              (3U)
#define LMCAL_UART_PORTE              (4U)
#define LMCAL_UART_PORTF              (5U)
#define LMCAL_UART_PORTG              (6U)
#define LMCAL_UART_PORTH              (7U)
#define LMCAL_UART_PORTI              (8U)

// Номера портов в цифровом формате
#define LMCAL_UART_PORT0              (0U)
#define LMCAL_UART_PORT1              (1U)
#define LMCAL_UART_PORT2              (2U)
#define LMCAL_UART_PORT3              (3U)
#define LMCAL_UART_PORT4              (4U)
#define LMCAL_UART_PORT5              (5U)
#define LMCAL_UART_PORT6              (6U)
#define LMCAL_UART_PORT7              (7U)
#define LMCAL_UART_PORT8              (8U)
#define LMCAL_UART_PORT_NONE          (0xFFFFFFFF)

// Номера пинов в цифровом формате
#define LMCAL_UART_PIN0               (0U)
#define LMCAL_UART_PIN1               (1U)
#define LMCAL_UART_PIN2               (2U)
#define LMCAL_UART_PIN3               (3U)
#define LMCAL_UART_PIN4               (4U)
#define LMCAL_UART_PIN5               (5U)
#define LMCAL_UART_PIN6               (6U)
#define LMCAL_UART_PIN7               (7U)
#define LMCAL_UART_PIN8               (8U)
#define LMCAL_UART_PIN9               (9U)
#define LMCAL_UART_PIN10              (10U)
#define LMCAL_UART_PIN11              (11U)
#define LMCAL_UART_PIN12              (12U)
#define LMCAL_UART_PIN13              (13U)
#define LMCAL_UART_PIN14              (14U)
#define LMCAL_UART_PIN15              (15U)
#define LMCAL_UART_PIN16              (16U)
#define LMCAL_UART_PIN17              (17U)
#define LMCAL_UART_PIN18              (18U)
#define LMCAL_UART_PIN19              (19U)
#define LMCAL_UART_PIN20              (20U)
#define LMCAL_UART_PIN21              (21U)
#define LMCAL_UART_PIN22              (22U)
#define LMCAL_UART_PIN23              (23U)
#define LMCAL_UART_PIN24              (24U)
#define LMCAL_UART_PIN25              (25U)
#define LMCAL_UART_PIN26              (26U)
#define LMCAL_UART_PIN27              (27U)
#define LMCAL_UART_PIN28              (28U)
#define LMCAL_UART_PIN29              (29U)
#define LMCAL_UART_PIN30              (30U)
#define LMCAL_UART_PIN31              (31U)
#define LMCAL_UART_PIN_NONE           (0xFFFFFFFF)

//  Бит четности
#define LMCAL_UART_PARITY_OFF         (1U) // Отключено
#define LMCAL_UART_PARITY_ODD         (2U) // Нечетный
#define LMCAL_UART_PARITY_EVEN        (3U) // Четный


//************************************ Глобальные (публичные) константы *************************************

//---------------------------------------------------------
// Канал 0
//---------------------------------------------------------

// Включить или отключить канал
// Доступные значения: ON\OFF, 1\0
#define LMCAL_UART_CH0_ENABLE             (OFF)

// Включить или отключить асинхронный режим работы драйвера
// Если выключен, то исползуются функции с блокированием.
// Доступные значения: ON\OFF, 1\0
#define LMCAL_UART_CH0_ASYNC_MODE         (OFF)

// Номер аппаратного UART.
// Доступные значения: LMCAL_UART0..LMCAL_UART10
#define LMCAL_UART_CH0_UART_NUM           (LMCAL_UART0)

// Номер порта TX.
// Доступные значения: LMCAL_UART_PORTA..LMCAL_UART_PORTH или LMCAL_UART_PORT0..LMCAL_UART_PORT7
#define LMCAL_UART_CH0_TX_PORT            (LMCAL_UART_PORT0)

// Номер ножки TX.
// Доступные значения: LMCAL_UART_PIN0...LMCAL_UART_PIN31
#define LMCAL_UART_CH0_TX_PIN             (LMCAL_UART_PIN0)

// Номер порта RX. 
// Доступные значения: LMCAL_UART_PORTA..LMCAL_UART_PORTH или LMCAL_UART_PORT0..LMCAL_UART_PORT7
#define LMCAL_UART_CH0_RX_PORT            (LMCAL_UART_PORT0)

// Номер ножки RX. 
// Доступные значения: LMCAL_UART_PIN0...LMCAL_UART_PIN31
#define LMCAL_UART_CH0_RX_PIN             (LMCAL_UART_PIN0)

// Номер порта CLK. 
// Доступные значения: LMCAL_UART_PORTA..LMCAL_UART_PORTH или LMCAL_UART_PORT0..LMCAL_UART_PORT7
#define LMCAL_UART_CH0_CLK_PORT           (LMCAL_UART_PORT0)

// Номер ножки CLK.
// Доступные значения: LMCAL_UART_PIN0...LMCAL_UART_PIN31
#define LMCAL_UART_CH0_CLK_PIN            (LMCAL_UART_PIN0)

// Скорость приема и передачи (бод\с).
// Доступные значения зависят от реализации, могут быть:
//    2400, 9600, 19200, 57600, 115200, 230400, 460800, 921600, 2250000...
#define LMCAL_UART_CH0_BAUDRATE           (9600U)

// Бит четности
// Доступные значения: LMCAL_UART_PARITY_OFF, LMCAL_UART_PARITY_EVEN, LMCAL_UART_PARITY_ODD
#define LMCAL_UART_CH0_PARITY             (LMCAL_UART_PARITY_OFF)



//---------------------------------------------------------
// Канал 1
//---------------------------------------------------------
#define LMCAL_UART_CH1_ENABLE             (OFF)
#define LMCAL_UART_CH1_ASYNC_MODE         (OFF)
#define LMCAL_UART_CH1_UART_NUM           (LMCAL_UART0)
#define LMCAL_UART_CH1_TX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH1_TX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH1_RX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH1_RX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH1_CLK_PORT           (LMCAL_UART_PORT_NONE)
#define LMCAL_UART_CH1_CLK_PIN            (LMCAL_UART_PIN_NONE)
#define LMCAL_UART_CH1_BAUDRATE           (9600U)
#define LMCAL_UART_CH1_PARITY             (LMCAL_UART_PARITY_OFF)


//---------------------------------------------------------
// Канал 2
//---------------------------------------------------------
#define LMCAL_UART_CH2_ENABLE             (OFF)
#define LMCAL_UART_CH2_ASYNC_MODE         (OFF)
#define LMCAL_UART_CH2_UART_NUM           (LMCAL_UART0)
#define LMCAL_UART_CH2_TX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH2_TX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH2_RX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH2_RX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH2_CLK_PORT           (LMCAL_UART_PORT_NONE)
#define LMCAL_UART_CH2_CLK_PIN            (LMCAL_UART_PIN_NONE)
#define LMCAL_UART_CH2_BAUDRATE           (9600U)
#define LMCAL_UART_CH2_PARITY             (LMCAL_UART_PARITY_OFF)


//---------------------------------------------------------
// Канал 3
//---------------------------------------------------------
#define LMCAL_UART_CH3_ENABLE             (OFF)
#define LMCAL_UART_CH3_ASYNC_MODE         (OFF)
#define LMCAL_UART_CH3_UART_NUM           (LMCAL_UART0)
#define LMCAL_UART_CH3_TX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH3_TX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH3_RX_PORT            (LMCAL_UART_PORT0)
#define LMCAL_UART_CH3_RX_PIN             (LMCAL_UART_PIN0)
#define LMCAL_UART_CH3_CLK_PORT           (LMCAL_UART_PORT_NONE)
#define LMCAL_UART_CH3_CLK_PIN            (LMCAL_UART_PIN_NONE)
#define LMCAL_UART_CH3_BAUDRATE           (9600U)
#define LMCAL_UART_CH3_PARITY             (LMCAL_UART_PARITY_OFF)



#endif


//*********************************************** КОНЕЦ ФАЙЛА ***********************************************
