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

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

ASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 5.4 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2014-2017 Cores Co., Ltd. Japan
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
40void mbed_api_init(void);
41
42void wait_ms(int ms);
43uint32_t us_ticker_read(void);
44
45typedef enum {
46 PIN_LED0,
47 PIN_LED1,
48 PIN_LED2,
49 PIN_LED3,
50 PIN_BUTTON0,
51 NC = (int)0xFFFFFFFF
52} PinName;
53
54#define LED_RED PIN_LED0
55#define LED_GREEN PIN_LED1
56#define LED_BLUE PIN_LED2
57#define LED_USER PIN_LED3
58#define USER_BUTTON0 PIN_BUTTON0
59
60typedef enum {
61 PIN_INPUT,
62 PIN_OUTPUT
63} PinDirection;
64
65typedef enum {
66 PullUp = 0,
67 PullDown = 3,
68 PullNone = 2,
69 OpenDrain = 4,
70 PullDefault = PullDown
71} PinMode;
72
73typedef struct gpio_s {
74 PinName pin;
75 PinDirection dir;
76 PinMode mode;
77} gpio_t;
78
79void gpio_init(gpio_t *obj, PinName pin);
80void gpio_mode(gpio_t *obj, PinMode mode);
81void gpio_dir(gpio_t *obj, PinDirection direction);
82
83void gpio_write(gpio_t *obj, int value);
84int gpio_read(gpio_t *obj);
85
86void gpio_init_in(gpio_t* gpio, PinName pin);
87void gpio_init_out(gpio_t* gpio, PinName pin);
88
89typedef struct analogin_s {
90 PinName pin;
91} analogin_t;
92
93void analogin_init(analogin_t *obj, PinName pin);
94uint16_t analogin_read_u16(analogin_t *obj);
95
96typedef struct dac_s {
97 PinName pin;
98} dac_t;
99
100void analogout_init(dac_t *obj, PinName pin);
101void analogout_write_u16(dac_t *obj, uint16_t value);
102
103typedef struct pwmout_s {
104 PinName pin;
105} pwmout_t;
106
107void pwmout_init(pwmout_t* obj, PinName pin);
108void pwmout_free(pwmout_t* obj);
109
110void pwmout_period_us(pwmout_t* obj, int us);
111void pwmout_pulsewidth_us(pwmout_t* obj, int us);
112
113void arduino_tick();
114
115typedef enum {
116 ParityNone = 0,
117 ParityOdd = 1,
118 ParityEven = 2,
119 ParityForced1 = 3,
120 ParityForced0 = 4
121} SerialParity;
122
123typedef enum {
124 FlowControlNone,
125 FlowControlRTS,
126 FlowControlCTS,
127 FlowControlRTSCTS
128} FlowControl;
129
130typedef struct serial_s {
131 int dummy;
132} serial_t;
133
134typedef struct spi_s {
135 int dummy;
136} spi_t;
137
138void serial_init(serial_t *obj, PinName tx, PinName rx);
139void serial_free(serial_t *obj);
140void serial_baud(serial_t *obj, int baudrate);
141void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
142int serial_getc(serial_t *obj);
143void serial_putc(serial_t *obj, int c);
144int serial_readable(serial_t *obj);
145int serial_writable(serial_t *obj);
146
147typedef struct i2c_s {
148 unsigned char rxdata[16];
149} i2c_t;
150
151void i2c_init(i2c_t *obj, PinName sda, PinName scl);
152void i2c_frequency(i2c_t *obj, int hz);
153int i2c_start(i2c_t *obj);
154int i2c_stop(i2c_t *obj);
155int i2c_read(i2c_t *obj, int address, char *data, int length, int stop);
156int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop);
157int i2c_byte_read(i2c_t *obj, int last);
158int i2c_byte_write(i2c_t *obj, int data);
159
160void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel);
161void spi_free(spi_t *obj);
162void spi_format(spi_t *obj, int bits, int mode, int slave);
163void spi_frequency(spi_t *obj, int hz);
164int spi_master_write(spi_t *obj, int value);
165
166void rtc_init(void);
167void rtc_free(void);
168int rtc_isenabled(void);
169time_t rtc_read(void);
170void rtc_write(time_t t);
171
172#endif /* _MBED_API_H_ */
Note: See TracBrowser for help on using the repository browser.