Rewrite from scratch a TCP/IP stack for mbed. So far the following parts are usable: Drivers: - EMAC driver (from CMSIS 2.0) Protocols: - Ethernet protocol - ARP over ethernet for IPv4 - IPv4 over Ethernet - ICMPv4 over IPv4 - UDPv4 over IPv4 APIs: - Sockets for UDPv4 The structure of this stack is designed to be very modular. Each protocol can register one or more protocol to handle its payload, and in each protocol, an API can be hooked (like Sockets for example). This is an early release.

Committer:
Benoit
Date:
Sun Jun 12 19:17:11 2011 +0000
Revision:
1:f4040665bc61
Child:
4:cb3dc3361be5
Frames are now received using an interrupt handler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Benoit 1:f4040665bc61 1 /***********************************************************************//**
Benoit 1:f4040665bc61 2 * @file lpc17xx_pinsel.c
Benoit 1:f4040665bc61 3 * @brief Contains all functions support for Pin connect block firmware
Benoit 1:f4040665bc61 4 * library on LPC17xx
Benoit 1:f4040665bc61 5 * @version 2.0
Benoit 1:f4040665bc61 6 * @date 21. May. 2010
Benoit 1:f4040665bc61 7 * @author NXP MCU SW Application Team
Benoit 1:f4040665bc61 8 **************************************************************************
Benoit 1:f4040665bc61 9 * Software that is described herein is for illustrative purposes only
Benoit 1:f4040665bc61 10 * which provides customers with programming information regarding the
Benoit 1:f4040665bc61 11 * products. This software is supplied "AS IS" without any warranties.
Benoit 1:f4040665bc61 12 * NXP Semiconductors assumes no responsibility or liability for the
Benoit 1:f4040665bc61 13 * use of the software, conveys no license or title under any patent,
Benoit 1:f4040665bc61 14 * copyright, or mask work right to the product. NXP Semiconductors
Benoit 1:f4040665bc61 15 * reserves the right to make changes in the software without
Benoit 1:f4040665bc61 16 * notification. NXP Semiconductors also make no representation or
Benoit 1:f4040665bc61 17 * warranty that such application will be suitable for the specified
Benoit 1:f4040665bc61 18 * use without further testing or modification.
Benoit 1:f4040665bc61 19 **********************************************************************/
Benoit 1:f4040665bc61 20
Benoit 1:f4040665bc61 21 /* Peripheral group ----------------------------------------------------------- */
Benoit 1:f4040665bc61 22 /** @addtogroup PINSEL
Benoit 1:f4040665bc61 23 * @{
Benoit 1:f4040665bc61 24 */
Benoit 1:f4040665bc61 25
Benoit 1:f4040665bc61 26 /* Includes ------------------------------------------------------------------- */
Benoit 1:f4040665bc61 27 #include "lpc17xx_pinsel.h"
Benoit 1:f4040665bc61 28
Benoit 1:f4040665bc61 29 /* Public Functions ----------------------------------------------------------- */
Benoit 1:f4040665bc61 30
Benoit 1:f4040665bc61 31 static void set_PinFunc ( uint8_t portnum, uint8_t pinnum, uint8_t funcnum);
Benoit 1:f4040665bc61 32 static void set_ResistorMode ( uint8_t portnum, uint8_t pinnum, uint8_t modenum);
Benoit 1:f4040665bc61 33 static void set_OpenDrainMode( uint8_t portnum, uint8_t pinnum, uint8_t modenum);
Benoit 1:f4040665bc61 34
Benoit 1:f4040665bc61 35 /*********************************************************************//**
Benoit 1:f4040665bc61 36 * @brief Setup the pin selection function
Benoit 1:f4040665bc61 37 * @param[in] portnum PORT number,
Benoit 1:f4040665bc61 38 * should be one of the following:
Benoit 1:f4040665bc61 39 * - PINSEL_PORT_0 : Port 0
Benoit 1:f4040665bc61 40 * - PINSEL_PORT_1 : Port 1
Benoit 1:f4040665bc61 41 * - PINSEL_PORT_2 : Port 2
Benoit 1:f4040665bc61 42 * - PINSEL_PORT_3 : Port 3
Benoit 1:f4040665bc61 43 *
Benoit 1:f4040665bc61 44 * @param[in] pinnum Pin number,
Benoit 1:f4040665bc61 45 * should be one of the following:
Benoit 1:f4040665bc61 46 - PINSEL_PIN_0 : Pin 0
Benoit 1:f4040665bc61 47 - PINSEL_PIN_1 : Pin 1
Benoit 1:f4040665bc61 48 - PINSEL_PIN_2 : Pin 2
Benoit 1:f4040665bc61 49 - PINSEL_PIN_3 : Pin 3
Benoit 1:f4040665bc61 50 - PINSEL_PIN_4 : Pin 4
Benoit 1:f4040665bc61 51 - PINSEL_PIN_5 : Pin 5
Benoit 1:f4040665bc61 52 - PINSEL_PIN_6 : Pin 6
Benoit 1:f4040665bc61 53 - PINSEL_PIN_7 : Pin 7
Benoit 1:f4040665bc61 54 - PINSEL_PIN_8 : Pin 8
Benoit 1:f4040665bc61 55 - PINSEL_PIN_9 : Pin 9
Benoit 1:f4040665bc61 56 - PINSEL_PIN_10 : Pin 10
Benoit 1:f4040665bc61 57 - PINSEL_PIN_11 : Pin 11
Benoit 1:f4040665bc61 58 - PINSEL_PIN_12 : Pin 12
Benoit 1:f4040665bc61 59 - PINSEL_PIN_13 : Pin 13
Benoit 1:f4040665bc61 60 - PINSEL_PIN_14 : Pin 14
Benoit 1:f4040665bc61 61 - PINSEL_PIN_15 : Pin 15
Benoit 1:f4040665bc61 62 - PINSEL_PIN_16 : Pin 16
Benoit 1:f4040665bc61 63 - PINSEL_PIN_17 : Pin 17
Benoit 1:f4040665bc61 64 - PINSEL_PIN_18 : Pin 18
Benoit 1:f4040665bc61 65 - PINSEL_PIN_19 : Pin 19
Benoit 1:f4040665bc61 66 - PINSEL_PIN_20 : Pin 20
Benoit 1:f4040665bc61 67 - PINSEL_PIN_21 : Pin 21
Benoit 1:f4040665bc61 68 - PINSEL_PIN_22 : Pin 22
Benoit 1:f4040665bc61 69 - PINSEL_PIN_23 : Pin 23
Benoit 1:f4040665bc61 70 - PINSEL_PIN_24 : Pin 24
Benoit 1:f4040665bc61 71 - PINSEL_PIN_25 : Pin 25
Benoit 1:f4040665bc61 72 - PINSEL_PIN_26 : Pin 26
Benoit 1:f4040665bc61 73 - PINSEL_PIN_27 : Pin 27
Benoit 1:f4040665bc61 74 - PINSEL_PIN_28 : Pin 28
Benoit 1:f4040665bc61 75 - PINSEL_PIN_29 : Pin 29
Benoit 1:f4040665bc61 76 - PINSEL_PIN_30 : Pin 30
Benoit 1:f4040665bc61 77 - PINSEL_PIN_31 : Pin 31
Benoit 1:f4040665bc61 78
Benoit 1:f4040665bc61 79 * @param[in] funcnum Function number,
Benoit 1:f4040665bc61 80 * should be one of the following:
Benoit 1:f4040665bc61 81 * - PINSEL_FUNC_0 : default function
Benoit 1:f4040665bc61 82 * - PINSEL_FUNC_1 : first alternate function
Benoit 1:f4040665bc61 83 * - PINSEL_FUNC_2 : second alternate function
Benoit 1:f4040665bc61 84 * - PINSEL_FUNC_3 : third alternate function
Benoit 1:f4040665bc61 85 *
Benoit 1:f4040665bc61 86 * @return None
Benoit 1:f4040665bc61 87 **********************************************************************/
Benoit 1:f4040665bc61 88 static void set_PinFunc ( uint8_t portnum, uint8_t pinnum, uint8_t funcnum)
Benoit 1:f4040665bc61 89 {
Benoit 1:f4040665bc61 90 uint32_t pinnum_t = pinnum;
Benoit 1:f4040665bc61 91 uint32_t pinselreg_idx = 2 * portnum;
Benoit 1:f4040665bc61 92 uint32_t *pPinCon = (uint32_t *)&LPC_PINCON->PINSEL0;
Benoit 1:f4040665bc61 93
Benoit 1:f4040665bc61 94 if (pinnum_t >= 16) {
Benoit 1:f4040665bc61 95 pinnum_t -= 16;
Benoit 1:f4040665bc61 96 pinselreg_idx++;
Benoit 1:f4040665bc61 97 }
Benoit 1:f4040665bc61 98 *(uint32_t *)(pPinCon + pinselreg_idx) &= ~(0x03UL << (pinnum_t * 2));
Benoit 1:f4040665bc61 99 *(uint32_t *)(pPinCon + pinselreg_idx) |= ((uint32_t)funcnum) << (pinnum_t * 2);
Benoit 1:f4040665bc61 100 }
Benoit 1:f4040665bc61 101
Benoit 1:f4040665bc61 102 /*********************************************************************//**
Benoit 1:f4040665bc61 103 * @brief Setup resistor mode for each pin
Benoit 1:f4040665bc61 104 * @param[in] portnum PORT number,
Benoit 1:f4040665bc61 105 * should be one of the following:
Benoit 1:f4040665bc61 106 * - PINSEL_PORT_0 : Port 0
Benoit 1:f4040665bc61 107 * - PINSEL_PORT_1 : Port 1
Benoit 1:f4040665bc61 108 * - PINSEL_PORT_2 : Port 2
Benoit 1:f4040665bc61 109 * - PINSEL_PORT_3 : Port 3
Benoit 1:f4040665bc61 110 * @param[in] pinnum Pin number,
Benoit 1:f4040665bc61 111 * should be one of the following:
Benoit 1:f4040665bc61 112 - PINSEL_PIN_0 : Pin 0
Benoit 1:f4040665bc61 113 - PINSEL_PIN_1 : Pin 1
Benoit 1:f4040665bc61 114 - PINSEL_PIN_2 : Pin 2
Benoit 1:f4040665bc61 115 - PINSEL_PIN_3 : Pin 3
Benoit 1:f4040665bc61 116 - PINSEL_PIN_4 : Pin 4
Benoit 1:f4040665bc61 117 - PINSEL_PIN_5 : Pin 5
Benoit 1:f4040665bc61 118 - PINSEL_PIN_6 : Pin 6
Benoit 1:f4040665bc61 119 - PINSEL_PIN_7 : Pin 7
Benoit 1:f4040665bc61 120 - PINSEL_PIN_8 : Pin 8
Benoit 1:f4040665bc61 121 - PINSEL_PIN_9 : Pin 9
Benoit 1:f4040665bc61 122 - PINSEL_PIN_10 : Pin 10
Benoit 1:f4040665bc61 123 - PINSEL_PIN_11 : Pin 11
Benoit 1:f4040665bc61 124 - PINSEL_PIN_12 : Pin 12
Benoit 1:f4040665bc61 125 - PINSEL_PIN_13 : Pin 13
Benoit 1:f4040665bc61 126 - PINSEL_PIN_14 : Pin 14
Benoit 1:f4040665bc61 127 - PINSEL_PIN_15 : Pin 15
Benoit 1:f4040665bc61 128 - PINSEL_PIN_16 : Pin 16
Benoit 1:f4040665bc61 129 - PINSEL_PIN_17 : Pin 17
Benoit 1:f4040665bc61 130 - PINSEL_PIN_18 : Pin 18
Benoit 1:f4040665bc61 131 - PINSEL_PIN_19 : Pin 19
Benoit 1:f4040665bc61 132 - PINSEL_PIN_20 : Pin 20
Benoit 1:f4040665bc61 133 - PINSEL_PIN_21 : Pin 21
Benoit 1:f4040665bc61 134 - PINSEL_PIN_22 : Pin 22
Benoit 1:f4040665bc61 135 - PINSEL_PIN_23 : Pin 23
Benoit 1:f4040665bc61 136 - PINSEL_PIN_24 : Pin 24
Benoit 1:f4040665bc61 137 - PINSEL_PIN_25 : Pin 25
Benoit 1:f4040665bc61 138 - PINSEL_PIN_26 : Pin 26
Benoit 1:f4040665bc61 139 - PINSEL_PIN_27 : Pin 27
Benoit 1:f4040665bc61 140 - PINSEL_PIN_28 : Pin 28
Benoit 1:f4040665bc61 141 - PINSEL_PIN_29 : Pin 29
Benoit 1:f4040665bc61 142 - PINSEL_PIN_30 : Pin 30
Benoit 1:f4040665bc61 143 - PINSEL_PIN_31 : Pin 31
Benoit 1:f4040665bc61 144
Benoit 1:f4040665bc61 145 * @param[in] modenum: Mode number,
Benoit 1:f4040665bc61 146 * should be one of the following:
Benoit 1:f4040665bc61 147 - PINSEL_PINMODE_PULLUP : Internal pull-up resistor
Benoit 1:f4040665bc61 148 - PINSEL_PINMODE_TRISTATE : Tri-state
Benoit 1:f4040665bc61 149 - PINSEL_PINMODE_PULLDOWN : Internal pull-down resistor
Benoit 1:f4040665bc61 150
Benoit 1:f4040665bc61 151 * @return None
Benoit 1:f4040665bc61 152 **********************************************************************/
Benoit 1:f4040665bc61 153 void set_ResistorMode ( uint8_t portnum, uint8_t pinnum, uint8_t modenum)
Benoit 1:f4040665bc61 154 {
Benoit 1:f4040665bc61 155 uint32_t pinnum_t = pinnum;
Benoit 1:f4040665bc61 156 uint32_t pinmodereg_idx = 2 * portnum;
Benoit 1:f4040665bc61 157 uint32_t *pPinCon = (uint32_t *)&LPC_PINCON->PINMODE0;
Benoit 1:f4040665bc61 158
Benoit 1:f4040665bc61 159 if (pinnum_t >= 16) {
Benoit 1:f4040665bc61 160 pinnum_t -= 16;
Benoit 1:f4040665bc61 161 pinmodereg_idx++ ;
Benoit 1:f4040665bc61 162 }
Benoit 1:f4040665bc61 163
Benoit 1:f4040665bc61 164 *(uint32_t *)(pPinCon + pinmodereg_idx) &= ~(0x03UL << (pinnum_t * 2));
Benoit 1:f4040665bc61 165 *(uint32_t *)(pPinCon + pinmodereg_idx) |= ((uint32_t)modenum) << (pinnum_t * 2);
Benoit 1:f4040665bc61 166 }
Benoit 1:f4040665bc61 167
Benoit 1:f4040665bc61 168 /*********************************************************************//**
Benoit 1:f4040665bc61 169 * @brief Setup Open drain mode for each pin
Benoit 1:f4040665bc61 170 * @param[in] portnum PORT number,
Benoit 1:f4040665bc61 171 * should be one of the following:
Benoit 1:f4040665bc61 172 * - PINSEL_PORT_0 : Port 0
Benoit 1:f4040665bc61 173 * - PINSEL_PORT_1 : Port 1
Benoit 1:f4040665bc61 174 * - PINSEL_PORT_2 : Port 2
Benoit 1:f4040665bc61 175 * - PINSEL_PORT_3 : Port 3
Benoit 1:f4040665bc61 176 *
Benoit 1:f4040665bc61 177 * @param[in] pinnum Pin number,
Benoit 1:f4040665bc61 178 * should be one of the following:
Benoit 1:f4040665bc61 179 - PINSEL_PIN_0 : Pin 0
Benoit 1:f4040665bc61 180 - PINSEL_PIN_1 : Pin 1
Benoit 1:f4040665bc61 181 - PINSEL_PIN_2 : Pin 2
Benoit 1:f4040665bc61 182 - PINSEL_PIN_3 : Pin 3
Benoit 1:f4040665bc61 183 - PINSEL_PIN_4 : Pin 4
Benoit 1:f4040665bc61 184 - PINSEL_PIN_5 : Pin 5
Benoit 1:f4040665bc61 185 - PINSEL_PIN_6 : Pin 6
Benoit 1:f4040665bc61 186 - PINSEL_PIN_7 : Pin 7
Benoit 1:f4040665bc61 187 - PINSEL_PIN_8 : Pin 8
Benoit 1:f4040665bc61 188 - PINSEL_PIN_9 : Pin 9
Benoit 1:f4040665bc61 189 - PINSEL_PIN_10 : Pin 10
Benoit 1:f4040665bc61 190 - PINSEL_PIN_11 : Pin 11
Benoit 1:f4040665bc61 191 - PINSEL_PIN_12 : Pin 12
Benoit 1:f4040665bc61 192 - PINSEL_PIN_13 : Pin 13
Benoit 1:f4040665bc61 193 - PINSEL_PIN_14 : Pin 14
Benoit 1:f4040665bc61 194 - PINSEL_PIN_15 : Pin 15
Benoit 1:f4040665bc61 195 - PINSEL_PIN_16 : Pin 16
Benoit 1:f4040665bc61 196 - PINSEL_PIN_17 : Pin 17
Benoit 1:f4040665bc61 197 - PINSEL_PIN_18 : Pin 18
Benoit 1:f4040665bc61 198 - PINSEL_PIN_19 : Pin 19
Benoit 1:f4040665bc61 199 - PINSEL_PIN_20 : Pin 20
Benoit 1:f4040665bc61 200 - PINSEL_PIN_21 : Pin 21
Benoit 1:f4040665bc61 201 - PINSEL_PIN_22 : Pin 22
Benoit 1:f4040665bc61 202 - PINSEL_PIN_23 : Pin 23
Benoit 1:f4040665bc61 203 - PINSEL_PIN_24 : Pin 24
Benoit 1:f4040665bc61 204 - PINSEL_PIN_25 : Pin 25
Benoit 1:f4040665bc61 205 - PINSEL_PIN_26 : Pin 26
Benoit 1:f4040665bc61 206 - PINSEL_PIN_27 : Pin 27
Benoit 1:f4040665bc61 207 - PINSEL_PIN_28 : Pin 28
Benoit 1:f4040665bc61 208 - PINSEL_PIN_29 : Pin 29
Benoit 1:f4040665bc61 209 - PINSEL_PIN_30 : Pin 30
Benoit 1:f4040665bc61 210 - PINSEL_PIN_31 : Pin 31
Benoit 1:f4040665bc61 211
Benoit 1:f4040665bc61 212 * @param[in] modenum Open drain mode number,
Benoit 1:f4040665bc61 213 * should be one of the following:
Benoit 1:f4040665bc61 214 * - PINSEL_PINMODE_NORMAL : Pin is in the normal (not open drain) mode
Benoit 1:f4040665bc61 215 * - PINSEL_PINMODE_OPENDRAIN : Pin is in the open drain mode
Benoit 1:f4040665bc61 216 *
Benoit 1:f4040665bc61 217 * @return None
Benoit 1:f4040665bc61 218 **********************************************************************/
Benoit 1:f4040665bc61 219 void set_OpenDrainMode( uint8_t portnum, uint8_t pinnum, uint8_t modenum)
Benoit 1:f4040665bc61 220 {
Benoit 1:f4040665bc61 221 uint32_t *pPinCon = (uint32_t *)&LPC_PINCON->PINMODE_OD0;
Benoit 1:f4040665bc61 222
Benoit 1:f4040665bc61 223 if (modenum == PINSEL_PINMODE_OPENDRAIN){
Benoit 1:f4040665bc61 224 *(uint32_t *)(pPinCon + portnum) |= (0x01UL << pinnum);
Benoit 1:f4040665bc61 225 } else {
Benoit 1:f4040665bc61 226 *(uint32_t *)(pPinCon + portnum) &= ~(0x01UL << pinnum);
Benoit 1:f4040665bc61 227 }
Benoit 1:f4040665bc61 228 }
Benoit 1:f4040665bc61 229
Benoit 1:f4040665bc61 230 /* End of Public Functions ---------------------------------------------------- */
Benoit 1:f4040665bc61 231
Benoit 1:f4040665bc61 232 /* Public Functions ----------------------------------------------------------- */
Benoit 1:f4040665bc61 233 /** @addtogroup PINSEL_Public_Functions
Benoit 1:f4040665bc61 234 * @{
Benoit 1:f4040665bc61 235 */
Benoit 1:f4040665bc61 236 /*********************************************************************//**
Benoit 1:f4040665bc61 237 * @brief Configure trace function
Benoit 1:f4040665bc61 238 * @param[in] NewState State of the Trace function configuration,
Benoit 1:f4040665bc61 239 * should be one of the following:
Benoit 1:f4040665bc61 240 * - ENABLE : Enable Trace Function
Benoit 1:f4040665bc61 241 * - DISABLE : Disable Trace Function
Benoit 1:f4040665bc61 242 *
Benoit 1:f4040665bc61 243 * @return None
Benoit 1:f4040665bc61 244 **********************************************************************/
Benoit 1:f4040665bc61 245 void PINSEL_ConfigTraceFunc(FunctionalState NewState)
Benoit 1:f4040665bc61 246 {
Benoit 1:f4040665bc61 247 if (NewState == ENABLE) {
Benoit 1:f4040665bc61 248 LPC_PINCON->PINSEL10 |= (0x01UL << 3);
Benoit 1:f4040665bc61 249 } else if (NewState == DISABLE) {
Benoit 1:f4040665bc61 250 LPC_PINCON->PINSEL10 &= ~(0x01UL << 3);
Benoit 1:f4040665bc61 251 }
Benoit 1:f4040665bc61 252 }
Benoit 1:f4040665bc61 253
Benoit 1:f4040665bc61 254 /*********************************************************************//**
Benoit 1:f4040665bc61 255 * @brief Setup I2C0 pins
Benoit 1:f4040665bc61 256 * @param[in] i2cPinMode I2C pin mode,
Benoit 1:f4040665bc61 257 * should be one of the following:
Benoit 1:f4040665bc61 258 * - PINSEL_I2C_Normal_Mode : The standard drive mode
Benoit 1:f4040665bc61 259 * - PINSEL_I2C_Fast_Mode : Fast Mode Plus drive mode
Benoit 1:f4040665bc61 260 *
Benoit 1:f4040665bc61 261 * @param[in] filterSlewRateEnable should be:
Benoit 1:f4040665bc61 262 * - ENABLE: Enable filter and slew rate.
Benoit 1:f4040665bc61 263 * - DISABLE: Disable filter and slew rate.
Benoit 1:f4040665bc61 264 *
Benoit 1:f4040665bc61 265 * @return None
Benoit 1:f4040665bc61 266 **********************************************************************/
Benoit 1:f4040665bc61 267 void PINSEL_SetI2C0Pins(uint8_t i2cPinMode, FunctionalState filterSlewRateEnable)
Benoit 1:f4040665bc61 268 {
Benoit 1:f4040665bc61 269 uint32_t regVal = 0;
Benoit 1:f4040665bc61 270
Benoit 1:f4040665bc61 271 if (i2cPinMode == PINSEL_I2C_Fast_Mode){
Benoit 1:f4040665bc61 272 regVal = PINSEL_I2CPADCFG_SCLDRV0 | PINSEL_I2CPADCFG_SDADRV0;
Benoit 1:f4040665bc61 273 }
Benoit 1:f4040665bc61 274
Benoit 1:f4040665bc61 275 if (filterSlewRateEnable == DISABLE){
Benoit 1:f4040665bc61 276 regVal = PINSEL_I2CPADCFG_SCLI2C0 | PINSEL_I2CPADCFG_SDAI2C0;
Benoit 1:f4040665bc61 277 }
Benoit 1:f4040665bc61 278 LPC_PINCON->I2CPADCFG = regVal;
Benoit 1:f4040665bc61 279 }
Benoit 1:f4040665bc61 280
Benoit 1:f4040665bc61 281
Benoit 1:f4040665bc61 282 /*********************************************************************//**
Benoit 1:f4040665bc61 283 * @brief Configure Pin corresponding to specified parameters passed
Benoit 1:f4040665bc61 284 * in the PinCfg
Benoit 1:f4040665bc61 285 * @param[in] PinCfg Pointer to a PINSEL_CFG_Type structure
Benoit 1:f4040665bc61 286 * that contains the configuration information for the
Benoit 1:f4040665bc61 287 * specified pin.
Benoit 1:f4040665bc61 288 * @return None
Benoit 1:f4040665bc61 289 **********************************************************************/
Benoit 1:f4040665bc61 290 void PINSEL_ConfigPin(PINSEL_CFG_Type *PinCfg)
Benoit 1:f4040665bc61 291 {
Benoit 1:f4040665bc61 292 set_PinFunc(PinCfg->Portnum, PinCfg->Pinnum, PinCfg->Funcnum);
Benoit 1:f4040665bc61 293 set_ResistorMode(PinCfg->Portnum, PinCfg->Pinnum, PinCfg->Pinmode);
Benoit 1:f4040665bc61 294 set_OpenDrainMode(PinCfg->Portnum, PinCfg->Pinnum, PinCfg->OpenDrain);
Benoit 1:f4040665bc61 295 }
Benoit 1:f4040665bc61 296
Benoit 1:f4040665bc61 297
Benoit 1:f4040665bc61 298 /**
Benoit 1:f4040665bc61 299 * @}
Benoit 1:f4040665bc61 300 */
Benoit 1:f4040665bc61 301
Benoit 1:f4040665bc61 302 /**
Benoit 1:f4040665bc61 303 * @}
Benoit 1:f4040665bc61 304 */
Benoit 1:f4040665bc61 305
Benoit 1:f4040665bc61 306 /* --------------------------------- End Of File ------------------------------ */