source: asp3_tinet_ecnl_rx/trunk/ntshell/src/mbed_api.h@ 364

Last change on this file since 364 was 364, checked in by coas-nagasima, 5 years ago

TINETとSocket APIなどを更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 6.9 KB
RevLine 
[337]1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
[364]4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan
[337]5 *
6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
15 * の無保証規定を掲載すること.
16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
18 * と.
19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
20 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
22 * 報告すること.
23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27 * 免責すること.
28 *
29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33 * の責任を負わない.
34 *
35 * @(#) $Id$
36 */
37#ifndef _MBED_API_H_
38#define _MBED_API_H_
39
[364]40#define DEVICE_SPI
41#define DEVICE_I2C
42
[337]43void mbed_api_init(void);
44
45void wait_ms(int ms);
46uint32_t us_ticker_read(void);
47
48typedef enum {
[364]49 D0, /* P21 */
50 D1, /* P20 */
51 D2, /* P22 */
52 D3, /* P23 */
53 D4, /* P24 */
54 D5, /* P25 */
55 D6, /* P32 */
56 D7, /* P33 */
57 D8, /* PC2 */
58 D9, /* PC3 */
59 D10, /* PC4 */
60 D11, /* PC6 */
61 D12, /* PC7 */
62 D13, /* PC5 */
63
64 A0, /* AN0 */
65 A1, /* AN1 */
66 A2, /* AN2 */
67 A3, /* AN3 */
68 A4, /* AN4 */
69 A5, /* AN5 */
70 A6, /* AN6 */
71 A7, /* AN7 */
72
73 I2C_SCL, /* P52 */
74 I2C_SDA, /* P50 */
75
[337]76 PIN_LED0,
77 PIN_LED1,
78 PIN_LED2,
79 PIN_LED3,
[364]80 PIN_SW,
81
[337]82 NC = (int)0xFFFFFFFF
83} PinName;
84
85#define LED_RED PIN_LED0
86#define LED_GREEN PIN_LED1
87#define LED_BLUE PIN_LED2
88#define LED_USER PIN_LED3
[364]89#define USER_BUTTON0 PIN_SW
[337]90
91typedef enum {
92 PIN_INPUT,
93 PIN_OUTPUT
94} PinDirection;
95
96typedef enum {
[364]97 PullUp = 2,
[337]98 PullDown = 3,
[364]99 PullNone = 0,
[337]100 OpenDrain = 4,
[364]101 PullDefault = PullNone
[337]102} PinMode;
103
104typedef struct gpio_s {
105 PinName pin;
106 PinDirection dir;
107 PinMode mode;
108} gpio_t;
109
110void gpio_init(gpio_t *obj, PinName pin);
111void gpio_mode(gpio_t *obj, PinMode mode);
112void gpio_dir(gpio_t *obj, PinDirection direction);
113
114void gpio_write(gpio_t *obj, int value);
115int gpio_read(gpio_t *obj);
116
117void gpio_init_in(gpio_t* gpio, PinName pin);
118void gpio_init_out(gpio_t* gpio, PinName pin);
119
120typedef struct analogin_s {
121 PinName pin;
122} analogin_t;
123
124void analogin_init(analogin_t *obj, PinName pin);
125uint16_t analogin_read_u16(analogin_t *obj);
126
127typedef struct dac_s {
128 PinName pin;
129} dac_t;
130
131void analogout_init(dac_t *obj, PinName pin);
132void analogout_write_u16(dac_t *obj, uint16_t value);
133
134typedef struct pwmout_s {
135 PinName pin;
136} pwmout_t;
137
138void pwmout_init(pwmout_t* obj, PinName pin);
139void pwmout_free(pwmout_t* obj);
140
141void pwmout_period_us(pwmout_t* obj, int us);
142void pwmout_pulsewidth_us(pwmout_t* obj, int us);
143
144void arduino_tick();
145
146typedef enum {
[364]147 ParityNone = 0,
148 ParityOdd = 1,
149 ParityEven = 2,
150 ParityForced1 = 3,
151 ParityForced0 = 4
[337]152} SerialParity;
153
154typedef enum {
[364]155 RxIrq,
156 TxIrq
157} SerialIrq;
158
159typedef enum {
160 FlowControlNone,
161 FlowControlRTS,
162 FlowControlCTS,
163 FlowControlRTSCTS
[337]164} FlowControl;
165
166typedef struct serial_s {
[364]167 void *base_address;
168 int rxi_intno;
169 int tei_intno;
[337]170} serial_t;
171
[364]172typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event);
[337]173
174void serial_init(serial_t *obj, PinName tx, PinName rx);
175void serial_free(serial_t *obj);
176void serial_baud(serial_t *obj, int baudrate);
177void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
178int serial_getc(serial_t *obj);
179void serial_putc(serial_t *obj, int c);
180int serial_readable(serial_t *obj);
181int serial_writable(serial_t *obj);
[364]182void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id);
[337]183
184typedef struct i2c_s {
[364]185 void *base_address;
186 int rxi_intno;
187 int txi_intno;
188 int tei_intno;
[337]189 unsigned char rxdata[16];
190} i2c_t;
191
192void i2c_init(i2c_t *obj, PinName sda, PinName scl);
193void i2c_frequency(i2c_t *obj, int hz);
194int i2c_start(i2c_t *obj);
195int i2c_stop(i2c_t *obj);
196int i2c_read(i2c_t *obj, int address, char *data, int length, int stop);
197int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop);
198int i2c_byte_read(i2c_t *obj, int last);
199int i2c_byte_write(i2c_t *obj, int data);
200
[364]201#define SPI_FILL_CHAR (0xFF)
202
203typedef struct spi_s {
204 void *base_address;
205 int rxi_intno;
206 int txi_intno;
207 int tei_intno;
208} spi_t;
209
[337]210void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel);
211void spi_free(spi_t *obj);
212void spi_format(spi_t *obj, int bits, int mode, int slave);
213void spi_frequency(spi_t *obj, int hz);
214int spi_master_write(spi_t *obj, int value);
[364]215int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length,
216 char *rx_buffer, int rx_length, char write_fill);
[337]217
218void rtc_init(void);
219void rtc_free(void);
220int rtc_isenabled(void);
221time_t rtc_read(void);
222void rtc_write(time_t t);
223
[364]224void sci0_rxi_handler(void);
225void sci0_txi_handler(void);
226void sci0_tei_handler(void);
227
228void sci1_rxi_handler(void);
229void sci1_txi_handler(void);
230void sci1_tei_handler(void);
231
232void sci2_rxi_handler(void);
233void sci2_txi_handler(void);
234void sci2_tei_handler(void);
235
236void sci3_rxi_handler(void);
237void sci3_txi_handler(void);
238void sci3_tei_handler(void);
239
240void sci4_rxi_handler(void);
241void sci4_txi_handler(void);
242void sci4_tei_handler(void);
243
244void sci5_rxi_handler(void);
245void sci5_txi_handler(void);
246void sci5_tei_handler(void);
247
248void sci6_rxi_handler(void);
249void sci6_txi_handler(void);
250void sci6_tei_handler(void);
251
[337]252#endif /* _MBED_API_H_ */
Note: See TracBrowser for help on using the repository browser.