mirror of
https://github.com/eggman/ameba-gcc-sample-rtos.git
synced 2026-07-04 18:35:42 +00:00
add mbed api hgeder files
This commit is contained in:
parent
724cc50ce8
commit
e33b01a6e7
20 changed files with 1281 additions and 3 deletions
51
sdk/component/common/mbed/hal/gpio_api.h
Normal file
51
sdk/component/common/mbed/hal/gpio_api.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_GPIO_API_H
|
||||
#define MBED_GPIO_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Set the given pin as GPIO
|
||||
* @param pin The pin to be set as GPIO
|
||||
* @return The GPIO port mask for this pin
|
||||
**/
|
||||
uint32_t gpio_set(PinName pin);
|
||||
|
||||
/* GPIO object */
|
||||
void gpio_init(gpio_t *obj, PinName pin);
|
||||
|
||||
void gpio_mode (gpio_t *obj, PinMode mode);
|
||||
void gpio_dir (gpio_t *obj, PinDirection direction);
|
||||
|
||||
void gpio_write(gpio_t *obj, int value);
|
||||
int gpio_read (gpio_t *obj);
|
||||
|
||||
// the following set of functions are generic and are implemented in the common gpio.c file
|
||||
void gpio_init_in(gpio_t* gpio, PinName pin);
|
||||
void gpio_init_in_ex(gpio_t* gpio, PinName pin, PinMode mode);
|
||||
void gpio_init_out(gpio_t* gpio, PinName pin);
|
||||
void gpio_init_out_ex(gpio_t* gpio, PinName pin, int value);
|
||||
void gpio_init_inout(gpio_t* gpio, PinName pin, PinDirection direction, PinMode mode, int value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
47
sdk/component/common/mbed/hal/gpio_irq_api.h
Normal file
47
sdk/component/common/mbed/hal/gpio_irq_api.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_GPIO_IRQ_API_H
|
||||
#define MBED_GPIO_IRQ_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#if DEVICE_INTERRUPTIN
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
IRQ_NONE,
|
||||
IRQ_RISE,
|
||||
IRQ_FALL
|
||||
} gpio_irq_event;
|
||||
|
||||
typedef void (*gpio_irq_handler)(uint32_t id, gpio_irq_event event);
|
||||
|
||||
int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id);
|
||||
void gpio_irq_free(gpio_irq_t *obj);
|
||||
void gpio_irq_set (gpio_irq_t *obj, gpio_irq_event event, uint32_t enable);
|
||||
void gpio_irq_enable(gpio_irq_t *obj);
|
||||
void gpio_irq_disable(gpio_irq_t *obj);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
58
sdk/component/common/mbed/hal/i2c_api.h
Normal file
58
sdk/component/common/mbed/hal/i2c_api.h
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_I2C_API_H
|
||||
#define MBED_I2C_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#if DEVICE_I2C
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct i2c_s i2c_t;
|
||||
|
||||
enum {
|
||||
I2C_ERROR_NO_SLAVE = -1,
|
||||
I2C_ERROR_BUS_BUSY = -2
|
||||
};
|
||||
|
||||
void i2c_init (i2c_t *obj, PinName sda, PinName scl);
|
||||
void i2c_frequency (i2c_t *obj, int hz);
|
||||
int i2c_start (i2c_t *obj);
|
||||
int i2c_stop (i2c_t *obj);
|
||||
int i2c_read (i2c_t *obj, int address, char *data, int length, int stop);
|
||||
int i2c_write (i2c_t *obj, int address, const char *data, int length, int stop);
|
||||
void i2c_reset (i2c_t *obj);
|
||||
int i2c_byte_read (i2c_t *obj, int last);
|
||||
int i2c_byte_write (i2c_t *obj, int data);
|
||||
|
||||
#if DEVICE_I2CSLAVE
|
||||
void i2c_slave_mode (i2c_t *obj, int enable_slave);
|
||||
int i2c_slave_receive(i2c_t *obj);
|
||||
int i2c_slave_read (i2c_t *obj, char *data, int length);
|
||||
int i2c_slave_write (i2c_t *obj, const char *data, int length);
|
||||
void i2c_slave_address(i2c_t *obj, int idx, uint32_t address, uint32_t mask);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
49
sdk/component/common/mbed/hal/pwmout_api.h
Normal file
49
sdk/component/common/mbed/hal/pwmout_api.h
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_PWMOUT_API_H
|
||||
#define MBED_PWMOUT_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#if DEVICE_PWMOUT
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct pwmout_s pwmout_t;
|
||||
|
||||
void pwmout_init (pwmout_t* obj, PinName pin);
|
||||
void pwmout_free (pwmout_t* obj);
|
||||
|
||||
void pwmout_write (pwmout_t* obj, float percent);
|
||||
float pwmout_read (pwmout_t* obj);
|
||||
|
||||
void pwmout_period (pwmout_t* obj, float seconds);
|
||||
void pwmout_period_ms (pwmout_t* obj, int ms);
|
||||
void pwmout_period_us (pwmout_t* obj, int us);
|
||||
|
||||
void pwmout_pulsewidth (pwmout_t* obj, float seconds);
|
||||
void pwmout_pulsewidth_ms(pwmout_t* obj, int ms);
|
||||
void pwmout_pulsewidth_us(pwmout_t* obj, int us);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
sdk/component/common/mbed/hal/serial_api.h
Normal file
78
sdk/component/common/mbed/hal/serial_api.h
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_SERIAL_API_H
|
||||
#define MBED_SERIAL_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#if DEVICE_SERIAL
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
ParityNone = 0,
|
||||
ParityOdd = 1,
|
||||
ParityEven = 2,
|
||||
ParityForced1 = 3,
|
||||
ParityForced0 = 4
|
||||
} SerialParity;
|
||||
|
||||
typedef enum {
|
||||
RxIrq,
|
||||
TxIrq
|
||||
} SerialIrq;
|
||||
|
||||
typedef enum {
|
||||
FlowControlNone,
|
||||
FlowControlRTS,
|
||||
FlowControlCTS,
|
||||
FlowControlRTSCTS
|
||||
} FlowControl;
|
||||
|
||||
typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event);
|
||||
|
||||
typedef struct serial_s serial_t;
|
||||
|
||||
void serial_init (serial_t *obj, PinName tx, PinName rx);
|
||||
void serial_free (serial_t *obj);
|
||||
void serial_baud (serial_t *obj, int baudrate);
|
||||
void serial_format (serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
|
||||
|
||||
void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id);
|
||||
void serial_irq_set (serial_t *obj, SerialIrq irq, uint32_t enable);
|
||||
|
||||
int serial_getc (serial_t *obj);
|
||||
void serial_putc (serial_t *obj, int c);
|
||||
int serial_readable (serial_t *obj);
|
||||
int serial_writable (serial_t *obj);
|
||||
void serial_clear (serial_t *obj);
|
||||
|
||||
void serial_break_set (serial_t *obj);
|
||||
void serial_break_clear(serial_t *obj);
|
||||
|
||||
void serial_pinout_tx(PinName tx);
|
||||
|
||||
void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
45
sdk/component/common/mbed/hal/spi_api.h
Normal file
45
sdk/component/common/mbed/hal/spi_api.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/* mbed Microcontroller Library
|
||||
* Copyright (c) 2006-2013 ARM Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MBED_SPI_API_H
|
||||
#define MBED_SPI_API_H
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#if DEVICE_SPI
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct spi_s spi_t;
|
||||
|
||||
void spi_init (spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel);
|
||||
void spi_free (spi_t *obj);
|
||||
void spi_format (spi_t *obj, int bits, int mode, int slave);
|
||||
void spi_frequency (spi_t *obj, int hz);
|
||||
int spi_master_write (spi_t *obj, int value);
|
||||
int spi_slave_receive(spi_t *obj);
|
||||
int spi_slave_read (spi_t *obj);
|
||||
void spi_slave_write (spi_t *obj, int value);
|
||||
int spi_busy (spi_t *obj);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue