Elijah Orr / mbed-renbed

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
Kojto
Date:
Wed Aug 05 13:16:35 2015 +0100
Revision:
104:b9ad9a133dc7
Parent:
102:da0ca467f8b5
Release 104 of the mbed library:

Changes:
- new platforms: nrf51 microbit
- MAXxxx - fix pwm array search
- LPC8xx - usart enable fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 102:da0ca467f8b5 1 /* mbed Microcontroller Library
Kojto 102:da0ca467f8b5 2 *******************************************************************************
Kojto 102:da0ca467f8b5 3 * Copyright (c) 2015 WIZnet Co.,Ltd. All rights reserved.
Kojto 102:da0ca467f8b5 4 * All rights reserved.
Kojto 102:da0ca467f8b5 5 *
Kojto 102:da0ca467f8b5 6 * Redistribution and use in source and binary forms, with or without
Kojto 102:da0ca467f8b5 7 * modification, are permitted provided that the following conditions are met:
Kojto 102:da0ca467f8b5 8 *
Kojto 102:da0ca467f8b5 9 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 102:da0ca467f8b5 10 * this list of conditions and the following disclaimer.
Kojto 102:da0ca467f8b5 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 102:da0ca467f8b5 12 * this list of conditions and the following disclaimer in the documentation
Kojto 102:da0ca467f8b5 13 * and/or other materials provided with the distribution.
Kojto 102:da0ca467f8b5 14 * 3. Neither the name of ARM Limited nor the names of its contributors
Kojto 102:da0ca467f8b5 15 * may be used to endorse or promote products derived from this software
Kojto 102:da0ca467f8b5 16 * without specific prior written permission.
Kojto 102:da0ca467f8b5 17 *
Kojto 102:da0ca467f8b5 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 102:da0ca467f8b5 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 102:da0ca467f8b5 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 102:da0ca467f8b5 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 102:da0ca467f8b5 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 102:da0ca467f8b5 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 102:da0ca467f8b5 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 102:da0ca467f8b5 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 102:da0ca467f8b5 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 102:da0ca467f8b5 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 102:da0ca467f8b5 28 *******************************************************************************
Kojto 102:da0ca467f8b5 29 */
Kojto 104:b9ad9a133dc7 30 /*include -------------------------------------*/
Kojto 101:7cff1c4259d7 31 #include "W7500x.h"
Kojto 101:7cff1c4259d7 32
Kojto 104:b9ad9a133dc7 33 #ifndef __W7500X_I2C_H
Kojto 104:b9ad9a133dc7 34 #define __W7500X_I2C_H
Kojto 101:7cff1c4259d7 35
Kojto 101:7cff1c4259d7 36
Kojto 104:b9ad9a133dc7 37 typedef enum {
Kojto 104:b9ad9a133dc7 38 I2C_PA_5 = 0x05,
Kojto 104:b9ad9a133dc7 39 I2C_PA_6 = 0x06,
Kojto 104:b9ad9a133dc7 40 I2C_PA_9 = 0x09,
Kojto 104:b9ad9a133dc7 41 I2C_PA_10 = 0x0A,
Kojto 104:b9ad9a133dc7 42 I2C_PC_4 = 0x24,
Kojto 104:b9ad9a133dc7 43 I2C_PC_5 = 0x25,
Kojto 104:b9ad9a133dc7 44 I2C_PC_8 = 0x28,
Kojto 104:b9ad9a133dc7 45 // Not connected
Kojto 104:b9ad9a133dc7 46 I2C_NC = (int)0xFFFFFFFF
Kojto 104:b9ad9a133dc7 47 } I2C_PinName;
Kojto 101:7cff1c4259d7 48
Kojto 101:7cff1c4259d7 49 typedef struct
Kojto 101:7cff1c4259d7 50 {
Kojto 104:b9ad9a133dc7 51 I2C_PinName scl;
Kojto 104:b9ad9a133dc7 52 I2C_PinName sda;
Kojto 101:7cff1c4259d7 53 }I2C_ConfigStruct;
Kojto 101:7cff1c4259d7 54
Kojto 101:7cff1c4259d7 55
Kojto 104:b9ad9a133dc7 56 #define I2C_PORT(X) (((uint32_t)(X) >> 4) & 0xF) // port number (0=A, 1=B, 2=C, 3=D)
Kojto 104:b9ad9a133dc7 57 #define I2C_PIN_INDEX(X) (1 << ((uint32_t)(X) & 0xF)) // pin index : flag bit
Kojto 101:7cff1c4259d7 58
Kojto 104:b9ad9a133dc7 59 uint32_t I2C_Init(I2C_ConfigStruct* conf);
Kojto 101:7cff1c4259d7 60
Kojto 104:b9ad9a133dc7 61 void I2C_WriteBitSDA(I2C_ConfigStruct* conf, uint8_t data);
Kojto 104:b9ad9a133dc7 62 void I2C_WriteBitSCL(I2C_ConfigStruct* conf, uint8_t data);
Kojto 104:b9ad9a133dc7 63 uint8_t I2C_ReadBitSDA(I2C_ConfigStruct* conf);
Kojto 101:7cff1c4259d7 64
Kojto 104:b9ad9a133dc7 65 void I2C_SendACK(I2C_ConfigStruct* conf);
Kojto 104:b9ad9a133dc7 66 void I2C_SendNACK(I2C_ConfigStruct* conf);
Kojto 101:7cff1c4259d7 67
Kojto 104:b9ad9a133dc7 68 uint8_t I2C_WriteByte(I2C_ConfigStruct* conf, uint8_t data);
Kojto 104:b9ad9a133dc7 69 uint8_t I2C_ReadByte(I2C_ConfigStruct* conf);
Kojto 101:7cff1c4259d7 70
Kojto 104:b9ad9a133dc7 71 void I2C_Start(I2C_ConfigStruct* conf);
Kojto 104:b9ad9a133dc7 72 void I2C_Stop(I2C_ConfigStruct* conf);
Kojto 101:7cff1c4259d7 73
Kojto 104:b9ad9a133dc7 74 int I2C_Write(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 104:b9ad9a133dc7 75 int I2C_WriteRepeated(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 104:b9ad9a133dc7 76 int I2C_Read(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 104:b9ad9a133dc7 77 int I2C_ReadRepeated(I2C_ConfigStruct* conf, uint8_t addr, uint8_t* data, uint32_t len);
Kojto 102:da0ca467f8b5 78
Kojto 102:da0ca467f8b5 79
Kojto 104:b9ad9a133dc7 80 #endif //__W7500X_I2C_H
Kojto 101:7cff1c4259d7 81