/******************************************************************************* * Function Name: ModbusUART_SetPins ******************************************************************************** * * Summary: * Sets the pins settings accordingly to the selected operation mode. * Only available in the Unconfigured operation mode. The mode specific * initialization function calls it. * Pins configuration is set by PSoC Creator when a specific mode of operation * is selected in design time. * * Parameters: * mode: Mode of SCB operation. * subMode: Sub-mode of SCB operation. It is only required for SPI and UART * modes. * uartEnableMask: enables TX or RX direction and RTS and CTS signals. * * Return: * None * *******************************************************************************/ void ModbusUART_SetPins(uint32 mode, uint32 subMode, uint32 uartEnableMask) { uint32 hsiomSel [ModbusUART_SCB_PINS_NUMBER]; uint32 pinsDm [ModbusUART_SCB_PINS_NUMBER]; #if (!ModbusUART_CY_SCBIP_V1) uint32 pinsInBuf = 0u; #endif /* (!ModbusUART_CY_SCBIP_V1) */ uint32 i; /* Set default HSIOM to GPIO and Drive Mode to Analog Hi-Z */ for(i = 0u; i < ModbusUART_SCB_PINS_NUMBER; i++) { hsiomSel[i] = ModbusUART_HSIOM_DEF_SEL; pinsDm[i] = ModbusUART_PIN_DM_ALG_HIZ; } if((ModbusUART_SCB_MODE_I2C == mode) || (ModbusUART_SCB_MODE_EZI2C == mode)) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_I2C_SEL; hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_I2C_SEL; pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; } #if (!ModbusUART_CY_SCBIP_V1) else if(ModbusUART_SCB_MODE_SPI == mode) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; hsiomSel[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; if(ModbusUART_SPI_SLAVE == subMode) { /* Slave */ pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsDm[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; #if(ModbusUART_SS0_PIN) /* Only SS0 is valid choice for Slave */ hsiomSel[ModbusUART_SS0_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS0_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_MISO_SDA_TX_PIN) /* Disable input buffer */ pinsInBuf |= ModbusUART_MISO_SDA_TX_PIN_MASK; #endif /* (ModbusUART_MISO_SDA_TX_PIN_PIN) */ } else /* (Master) */ { pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; pinsDm[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #if(ModbusUART_SS0_PIN) hsiomSel [ModbusUART_SS0_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS0_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsInBuf |= ModbusUART_SS0_PIN_MASK; #endif /* (ModbusUART_SS0_PIN) */ #if(ModbusUART_SS1_PIN) hsiomSel [ModbusUART_SS1_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS1_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsInBuf |= ModbusUART_SS1_PIN_MASK; #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS2_PIN) hsiomSel [ModbusUART_SS2_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS2_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsInBuf |= ModbusUART_SS2_PIN_MASK; #endif /* (ModbusUART_SS2_PIN) */ #if(ModbusUART_SS3_PIN) hsiomSel [ModbusUART_SS3_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS3_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsInBuf |= ModbusUART_SS3_PIN_MASK; #endif /* (ModbusUART_SS2_PIN) */ /* Disable input buffers */ #if(ModbusUART_MOSI_SCL_RX_PIN) pinsInBuf |= ModbusUART_MOSI_SCL_RX_PIN_MASK; #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_MOSI_SCL_RX_WAKE_PIN) pinsInBuf |= ModbusUART_MOSI_SCL_RX_WAKE_PIN_MASK; #endif /* (ModbusUART_MOSI_SCL_RX_WAKE_PIN) */ #if(ModbusUART_SCLK_PIN) pinsInBuf |= ModbusUART_SCLK_PIN_MASK; #endif /* (ModbusUART_SCLK_PIN) */ } } else /* UART */ { if(ModbusUART_UART_MODE_SMARTCARD == subMode) { /* SmartCard */ hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; } else /* Standard or IrDA */ { if(0u != (ModbusUART_UART_RX_PIN_ENABLE & uartEnableMask)) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; } if(0u != (ModbusUART_UART_TX_PIN_ENABLE & uartEnableMask)) { hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #if(ModbusUART_MISO_SDA_TX_PIN) pinsInBuf |= ModbusUART_MISO_SDA_TX_PIN_MASK; #endif /* (ModbusUART_MISO_SDA_TX_PIN_PIN) */ } #if !(ModbusUART_CY_SCBIP_V0 || ModbusUART_CY_SCBIP_V1) if(ModbusUART_UART_MODE_STD == subMode) { if(0u != (ModbusUART_UART_CTS_PIN_ENABLE & uartEnableMask)) { /* CTS input is multiplexed with SCLK */ hsiomSel[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_SCLK_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; } if(0u != (ModbusUART_UART_RTS_PIN_ENABLE & uartEnableMask)) { /* RTS output is multiplexed with SS0 */ hsiomSel[ModbusUART_SS0_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_SS0_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #if(ModbusUART_SS0_PIN) /* Disable input buffer */ pinsInBuf |= ModbusUART_SS0_PIN_MASK; #endif /* (ModbusUART_SS0_PIN) */ } } #endif /* !(ModbusUART_CY_SCBIP_V0 || ModbusUART_CY_SCBIP_V1) */ } } #endif /* (!ModbusUART_CY_SCBIP_V1) */ /* Configure pins: set HSIOM, DM and InputBufEnable */ /* Note: the DR register settings do not effect the pin output if HSIOM is other than GPIO */ #if(ModbusUART_MOSI_SCL_RX_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MOSI_SCL_RX_HSIOM_REG, ModbusUART_MOSI_SCL_RX_HSIOM_MASK, ModbusUART_MOSI_SCL_RX_HSIOM_POS, hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX]); ModbusUART_spi_mosi_i2c_scl_uart_rx_SetDriveMode((uint8) pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX]); #if (!ModbusUART_CY_SCBIP_V1) ModbusUART_SET_INP_DIS(ModbusUART_spi_mosi_i2c_scl_uart_rx_INP_DIS, ModbusUART_spi_mosi_i2c_scl_uart_rx_MASK, (0u != (pinsInBuf & ModbusUART_MOSI_SCL_RX_PIN_MASK))); #endif /* (!ModbusUART_CY_SCBIP_V1) */ #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_MOSI_SCL_RX_WAKE_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_REG, ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_MASK, ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_POS, hsiomSel[ModbusUART_MOSI_SCL_RX_WAKE_PIN_INDEX]); ModbusUART_spi_mosi_i2c_scl_uart_rx_wake_SetDriveMode((uint8) pinsDm[ModbusUART_MOSI_SCL_RX_WAKE_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_mosi_i2c_scl_uart_rx_wake_INP_DIS, ModbusUART_spi_mosi_i2c_scl_uart_rx_wake_MASK, (0u != (pinsInBuf & ModbusUART_MOSI_SCL_RX_WAKE_PIN_MASK))); /* Set interrupt on falling edge */ ModbusUART_SET_INCFG_TYPE(ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_REG, ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_TYPE_MASK, ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_TYPE_POS, ModbusUART_INTCFG_TYPE_FALLING_EDGE); #endif /* (ModbusUART_MOSI_SCL_RX_WAKE_PIN) */ #if(ModbusUART_MISO_SDA_TX_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MISO_SDA_TX_HSIOM_REG, ModbusUART_MISO_SDA_TX_HSIOM_MASK, ModbusUART_MISO_SDA_TX_HSIOM_POS, hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX]); ModbusUART_spi_miso_i2c_sda_uart_tx_SetDriveMode((uint8) pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX]); #if (!ModbusUART_CY_SCBIP_V1) ModbusUART_SET_INP_DIS(ModbusUART_spi_miso_i2c_sda_uart_tx_INP_DIS, ModbusUART_spi_miso_i2c_sda_uart_tx_MASK, (0u != (pinsInBuf & ModbusUART_MISO_SDA_TX_PIN_MASK))); #endif /* (!ModbusUART_CY_SCBIP_V1) */ #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_SCLK_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SCLK_HSIOM_REG, ModbusUART_SCLK_HSIOM_MASK, ModbusUART_SCLK_HSIOM_POS, hsiomSel[ModbusUART_SCLK_PIN_INDEX]); ModbusUART_spi_sclk_SetDriveMode((uint8) pinsDm[ModbusUART_SCLK_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_sclk_INP_DIS, ModbusUART_spi_sclk_MASK, (0u != (pinsInBuf & ModbusUART_SCLK_PIN_MASK))); #endif /* (ModbusUART_SCLK_PIN) */ #if(ModbusUART_SS0_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS0_HSIOM_REG, ModbusUART_SS0_HSIOM_MASK, ModbusUART_SS0_HSIOM_POS, hsiomSel[ModbusUART_SS0_PIN_INDEX]); ModbusUART_spi_ss0_SetDriveMode((uint8) pinsDm[ModbusUART_SS0_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_ss0_INP_DIS, ModbusUART_spi_ss0_MASK, (0u != (pinsInBuf & ModbusUART_SS0_PIN_MASK))); #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS1_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS1_HSIOM_REG, ModbusUART_SS1_HSIOM_MASK, ModbusUART_SS1_HSIOM_POS, hsiomSel[ModbusUART_SS1_PIN_INDEX]); ModbusUART_spi_ss1_SetDriveMode((uint8) pinsDm[ModbusUART_SS1_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_ss1_INP_DIS, ModbusUART_spi_ss1_MASK, (0u != (pinsInBuf & ModbusUART_SS1_PIN_MASK))); #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS2_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS2_HSIOM_REG, ModbusUART_SS2_HSIOM_MASK, ModbusUART_SS2_HSIOM_POS, hsiomSel[ModbusUART_SS2_PIN_INDEX]); ModbusUART_spi_ss2_SetDriveMode((uint8) pinsDm[ModbusUART_SS2_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_ss2_INP_DIS, ModbusUART_spi_ss2_MASK, (0u != (pinsInBuf & ModbusUART_SS2_PIN_MASK))); #endif /* (ModbusUART_SS2_PIN) */ #if(ModbusUART_SS3_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS3_HSIOM_REG, ModbusUART_SS3_HSIOM_MASK, ModbusUART_SS3_HSIOM_POS, hsiomSel[ModbusUART_SS3_PIN_INDEX]); ModbusUART_spi_ss3_SetDriveMode((uint8) pinsDm[ModbusUART_SS3_PIN_INDEX]); ModbusUART_SET_INP_DIS(ModbusUART_spi_ss3_INP_DIS, ModbusUART_spi_ss3_MASK, (0u != (pinsInBuf & ModbusUART_SS3_PIN_MASK))); #endif /* (ModbusUART_SS3_PIN) */ }
/******************************************************************************* * Function Name: ModbusUART_SetPins ******************************************************************************** * * Summary: * Sets pins settings accordingly to selected operation mode. * Only available in Unconfigured operation mode. The mode specific * initialization function calls it. * Pins configuration is set by PSoC Creator when specific mode of operation * selected in design time. * * Parameters: * mode: Mode of SCB operation. * subMode: Submode of SCB operation. It is only required for SPI and UART * modes. * uartTxRx: Direction for UART. * * Return: * None * *******************************************************************************/ void ModbusUART_SetPins(uint32 mode, uint32 subMode, uint32 uartTxRx) { uint32 hsiomSel[ModbusUART_SCB_PINS_NUMBER]; uint32 pinsDm [ModbusUART_SCB_PINS_NUMBER]; uint32 i; /* Make all unused */ for(i = 0u; i < ModbusUART_SCB_PINS_NUMBER; i++) { hsiomSel[i] = ModbusUART_HSIOM_DEF_SEL; pinsDm[i] = ModbusUART_PIN_DM_ALG_HIZ; } /* Choice the Dm and HSIOM */ if((ModbusUART_SCB_MODE_I2C == mode) || (ModbusUART_SCB_MODE_EZI2C == mode)) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_I2C_SEL; hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_I2C_SEL; pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; } else if(ModbusUART_SCB_MODE_SPI == mode) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; hsiomSel[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; if(ModbusUART_SPI_SLAVE == subMode) { /* Slave */ pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsDm[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; #if(ModbusUART_SS0_PIN) /* Only SS0 is valid choice for Slave */ hsiomSel[ModbusUART_SS0_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS0_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; #endif /* (ModbusUART_SS1_PIN) */ } else /* (Master) */ { pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; pinsDm[ModbusUART_SCLK_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #if(ModbusUART_SS0_PIN) hsiomSel[ModbusUART_SS0_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS0_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #endif /* (ModbusUART_SS0_PIN) */ #if(ModbusUART_SS1_PIN) hsiomSel[ModbusUART_SS1_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS1_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS2_PIN) hsiomSel[ModbusUART_SS2_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS2_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #endif /* (ModbusUART_SS2_PIN) */ #if(ModbusUART_SS3_PIN) hsiomSel[ModbusUART_SS3_PIN_INDEX] = ModbusUART_HSIOM_SPI_SEL; pinsDm [ModbusUART_SS3_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; #endif /* (ModbusUART_SS2_PIN) */ } } else /* UART */ { if(ModbusUART_UART_MODE_SMARTCARD == subMode) { /* SmartCard */ hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_OD_LO; } else /* Standard or IrDA */ { if(0u != (ModbusUART_UART_RX & uartTxRx)) { hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MOSI_SCL_RX_PIN_INDEX] = ModbusUART_PIN_DM_DIG_HIZ; } if(0u != (ModbusUART_UART_TX & uartTxRx)) { hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_HSIOM_UART_SEL; pinsDm [ModbusUART_MISO_SDA_TX_PIN_INDEX] = ModbusUART_PIN_DM_STRONG; } } } /* Condfigure pins: set HSIOM and DM */ /* Condfigure pins: DR registers configuration remains unchanged for cyfitter_cfg() */ #if(ModbusUART_MOSI_SCL_RX_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MOSI_SCL_RX_HSIOM_REG, ModbusUART_MOSI_SCL_RX_HSIOM_MASK, ModbusUART_MOSI_SCL_RX_HSIOM_POS, hsiomSel[ModbusUART_MOSI_SCL_RX_PIN_INDEX]); #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_MOSI_SCL_RX_WAKE_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_REG, ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_MASK, ModbusUART_MOSI_SCL_RX_WAKE_HSIOM_POS, hsiomSel[ModbusUART_MOSI_SCL_RX_WAKE_PIN_INDEX]); #endif /* (ModbusUART_MOSI_SCL_RX_WAKE_PIN) */ #if(ModbusUART_MISO_SDA_TX_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_MISO_SDA_TX_HSIOM_REG, ModbusUART_MISO_SDA_TX_HSIOM_MASK, ModbusUART_MISO_SDA_TX_HSIOM_POS, hsiomSel[ModbusUART_MISO_SDA_TX_PIN_INDEX]); #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_SCLK_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SCLK_HSIOM_REG, ModbusUART_SCLK_HSIOM_MASK, ModbusUART_SCLK_HSIOM_POS, hsiomSel[ModbusUART_SCLK_PIN_INDEX]); #endif /* (ModbusUART_SCLK_PIN) */ #if(ModbusUART_SS0_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS0_HSIOM_REG, ModbusUART_SS0_HSIOM_MASK, ModbusUART_SS0_HSIOM_POS, hsiomSel[ModbusUART_SS0_PIN_INDEX]); #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS1_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS1_HSIOM_REG, ModbusUART_SS1_HSIOM_MASK, ModbusUART_SS1_HSIOM_POS, hsiomSel[ModbusUART_SS1_PIN_INDEX]); #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS2_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS2_HSIOM_REG, ModbusUART_SS2_HSIOM_MASK, ModbusUART_SS2_HSIOM_POS, hsiomSel[ModbusUART_SS2_PIN_INDEX]); #endif /* (ModbusUART_SS2_PIN) */ #if(ModbusUART_SS3_PIN) ModbusUART_SET_HSIOM_SEL(ModbusUART_SS3_HSIOM_REG, ModbusUART_SS3_HSIOM_MASK, ModbusUART_SS3_HSIOM_POS, hsiomSel[ModbusUART_SS3_PIN_INDEX]); #endif /* (ModbusUART_SS3_PIN) */ #if(ModbusUART_MOSI_SCL_RX_PIN) ModbusUART_spi_mosi_i2c_scl_uart_rx_SetDriveMode((uint8) pinsDm[ModbusUART_MOSI_SCL_RX_PIN_INDEX]); #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_MOSI_SCL_RX_WAKE_PIN) ModbusUART_spi_mosi_i2c_scl_uart_rx_wake_SetDriveMode((uint8) pinsDm[ModbusUART_MOSI_SCL_RX_WAKE_PIN_INDEX]); /* Set interrupt on rising edge */ ModbusUART_SET_INCFG_TYPE(ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_REG, ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_TYPE_MASK, ModbusUART_MOSI_SCL_RX_WAKE_INTCFG_TYPE_POS, ModbusUART_INTCFG_TYPE_FALLING_EDGE); #endif /* (ModbusUART_MOSI_SCL_RX_WAKE_PIN) */ #if(ModbusUART_MISO_SDA_TX_PIN) ModbusUART_spi_miso_i2c_sda_uart_tx_SetDriveMode((uint8) pinsDm[ModbusUART_MISO_SDA_TX_PIN_INDEX]); #endif /* (ModbusUART_MOSI_SCL_RX_PIN) */ #if(ModbusUART_SCLK_PIN) ModbusUART_spi_sclk_SetDriveMode((uint8) pinsDm[ModbusUART_SCLK_PIN_INDEX]); #endif /* (ModbusUART_SCLK_PIN) */ #if(ModbusUART_SS0_PIN) ModbusUART_spi_ss0_SetDriveMode((uint8) pinsDm[ModbusUART_SS0_PIN_INDEX]); #endif /* (ModbusUART_SS0_PIN) */ #if(ModbusUART_SS1_PIN) ModbusUART_spi_ss1_SetDriveMode((uint8) pinsDm[ModbusUART_SS1_PIN_INDEX]); #endif /* (ModbusUART_SS1_PIN) */ #if(ModbusUART_SS2_PIN) ModbusUART_spi_ss2_SetDriveMode((uint8) pinsDm[ModbusUART_SS2_PIN_INDEX]); #endif /* (ModbusUART_SS2_PIN) */ #if(ModbusUART_SS3_PIN) ModbusUART_spi_ss3_SetDriveMode((uint8) pinsDm[ModbusUART_SS3_PIN_INDEX]); #endif /* (ModbusUART_SS3_PIN) */ }