mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
AnnaBridge
Date:
Thu Sep 06 13:39:34 2018 +0100
Revision:
170:e95d10626187
mbed library. Release version 163

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 170:e95d10626187 1 /* mbed Microcontroller Library
AnnaBridge 170:e95d10626187 2 * Copyright (c) 2015-2016 Nuvoton
AnnaBridge 170:e95d10626187 3 *
AnnaBridge 170:e95d10626187 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 170:e95d10626187 5 * you may not use this file except in compliance with the License.
AnnaBridge 170:e95d10626187 6 * You may obtain a copy of the License at
AnnaBridge 170:e95d10626187 7 *
AnnaBridge 170:e95d10626187 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 170:e95d10626187 9 *
AnnaBridge 170:e95d10626187 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 170:e95d10626187 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 170:e95d10626187 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 170:e95d10626187 13 * See the License for the specific language governing permissions and
AnnaBridge 170:e95d10626187 14 * limitations under the License.
AnnaBridge 170:e95d10626187 15 */
AnnaBridge 170:e95d10626187 16
AnnaBridge 170:e95d10626187 17 #ifndef MBED_OBJECTS_H
AnnaBridge 170:e95d10626187 18 #define MBED_OBJECTS_H
AnnaBridge 170:e95d10626187 19
AnnaBridge 170:e95d10626187 20 #include "cmsis.h"
AnnaBridge 170:e95d10626187 21 #include "PortNames.h"
AnnaBridge 170:e95d10626187 22 #include "PeripheralNames.h"
AnnaBridge 170:e95d10626187 23 #include "PinNames.h"
AnnaBridge 170:e95d10626187 24 #include "dma_api.h"
AnnaBridge 170:e95d10626187 25
AnnaBridge 170:e95d10626187 26 #ifdef __cplusplus
AnnaBridge 170:e95d10626187 27 extern "C" {
AnnaBridge 170:e95d10626187 28 #endif
AnnaBridge 170:e95d10626187 29
AnnaBridge 170:e95d10626187 30 struct gpio_irq_s {
AnnaBridge 170:e95d10626187 31 //IRQn_Type irq_n;
AnnaBridge 170:e95d10626187 32 //uint32_t irq_index;
AnnaBridge 170:e95d10626187 33 //uint32_t event;
AnnaBridge 170:e95d10626187 34
AnnaBridge 170:e95d10626187 35 PinName pin;
AnnaBridge 170:e95d10626187 36 uint32_t irq_handler;
AnnaBridge 170:e95d10626187 37 uint32_t irq_id;
AnnaBridge 170:e95d10626187 38 };
AnnaBridge 170:e95d10626187 39
AnnaBridge 170:e95d10626187 40 struct port_s {
AnnaBridge 170:e95d10626187 41 PortName port;
AnnaBridge 170:e95d10626187 42 uint32_t mask;
AnnaBridge 170:e95d10626187 43 PinDirection direction;
AnnaBridge 170:e95d10626187 44 };
AnnaBridge 170:e95d10626187 45
AnnaBridge 170:e95d10626187 46 struct analogin_s {
AnnaBridge 170:e95d10626187 47 ADCName adc;
AnnaBridge 170:e95d10626187 48 //PinName pin;
AnnaBridge 170:e95d10626187 49 };
AnnaBridge 170:e95d10626187 50
AnnaBridge 170:e95d10626187 51 struct serial_s {
AnnaBridge 170:e95d10626187 52 UARTName uart;
AnnaBridge 170:e95d10626187 53 PinName pin_tx;
AnnaBridge 170:e95d10626187 54 PinName pin_rx;
AnnaBridge 170:e95d10626187 55
AnnaBridge 170:e95d10626187 56 uint32_t baudrate;
AnnaBridge 170:e95d10626187 57 uint32_t databits;
AnnaBridge 170:e95d10626187 58 uint32_t parity;
AnnaBridge 170:e95d10626187 59 uint32_t stopbits;
AnnaBridge 170:e95d10626187 60
AnnaBridge 170:e95d10626187 61 void (*vec)(void);
AnnaBridge 170:e95d10626187 62 uint32_t irq_handler;
AnnaBridge 170:e95d10626187 63 uint32_t irq_id;
AnnaBridge 170:e95d10626187 64 uint32_t irq_en;
AnnaBridge 170:e95d10626187 65 uint32_t inten_msk;
AnnaBridge 170:e95d10626187 66
AnnaBridge 170:e95d10626187 67 // Async transfer related fields
AnnaBridge 170:e95d10626187 68 DMAUsage dma_usage_tx;
AnnaBridge 170:e95d10626187 69 DMAUsage dma_usage_rx;
AnnaBridge 170:e95d10626187 70 int dma_chn_id_tx;
AnnaBridge 170:e95d10626187 71 int dma_chn_id_rx;
AnnaBridge 170:e95d10626187 72 uint32_t event;
AnnaBridge 170:e95d10626187 73 void (*irq_handler_tx_async)(void);
AnnaBridge 170:e95d10626187 74 void (*irq_handler_rx_async)(void);
AnnaBridge 170:e95d10626187 75 };
AnnaBridge 170:e95d10626187 76
AnnaBridge 170:e95d10626187 77 struct spi_s {
AnnaBridge 170:e95d10626187 78 SPIName spi;
AnnaBridge 170:e95d10626187 79 PinName pin_miso;
AnnaBridge 170:e95d10626187 80 PinName pin_mosi;
AnnaBridge 170:e95d10626187 81 PinName pin_sclk;
AnnaBridge 170:e95d10626187 82 PinName pin_ssel;
AnnaBridge 170:e95d10626187 83
AnnaBridge 170:e95d10626187 84 //void (*vec)(void);
AnnaBridge 170:e95d10626187 85
AnnaBridge 170:e95d10626187 86 // Async transfer related fields
AnnaBridge 170:e95d10626187 87 DMAUsage dma_usage;
AnnaBridge 170:e95d10626187 88 int dma_chn_id_tx;
AnnaBridge 170:e95d10626187 89 int dma_chn_id_rx;
AnnaBridge 170:e95d10626187 90 uint32_t event;
AnnaBridge 170:e95d10626187 91 //void (*irq_handler_tx_async)(void);
AnnaBridge 170:e95d10626187 92 //void (*irq_handler_rx_async)(void);
AnnaBridge 170:e95d10626187 93 };
AnnaBridge 170:e95d10626187 94
AnnaBridge 170:e95d10626187 95 struct i2c_s {
AnnaBridge 170:e95d10626187 96 I2CName i2c;
AnnaBridge 170:e95d10626187 97 //void (*vec)(void);
AnnaBridge 170:e95d10626187 98 int slaveaddr_state;
AnnaBridge 170:e95d10626187 99
AnnaBridge 170:e95d10626187 100 uint32_t tran_ctrl;
AnnaBridge 170:e95d10626187 101 char * tran_beg;
AnnaBridge 170:e95d10626187 102 char * tran_pos;
AnnaBridge 170:e95d10626187 103 char * tran_end;
AnnaBridge 170:e95d10626187 104 int inten;
AnnaBridge 170:e95d10626187 105
AnnaBridge 170:e95d10626187 106 // Async transfer related fields
AnnaBridge 170:e95d10626187 107 DMAUsage dma_usage;
AnnaBridge 170:e95d10626187 108 uint32_t event;
AnnaBridge 170:e95d10626187 109 int stop;
AnnaBridge 170:e95d10626187 110 uint32_t address;
AnnaBridge 170:e95d10626187 111 };
AnnaBridge 170:e95d10626187 112
AnnaBridge 170:e95d10626187 113 struct pwmout_s {
AnnaBridge 170:e95d10626187 114 PWMName pwm;
AnnaBridge 170:e95d10626187 115 //PinName pin;
AnnaBridge 170:e95d10626187 116 uint32_t period_us;
AnnaBridge 170:e95d10626187 117 uint32_t pulsewidth_us;
AnnaBridge 170:e95d10626187 118 };
AnnaBridge 170:e95d10626187 119
AnnaBridge 170:e95d10626187 120 struct can_s {
AnnaBridge 170:e95d10626187 121 CANName can;
AnnaBridge 170:e95d10626187 122 char index;
AnnaBridge 170:e95d10626187 123 };
AnnaBridge 170:e95d10626187 124 #ifdef __cplusplus
AnnaBridge 170:e95d10626187 125 }
AnnaBridge 170:e95d10626187 126 #endif
AnnaBridge 170:e95d10626187 127
AnnaBridge 170:e95d10626187 128 #include "gpio_object.h"
AnnaBridge 170:e95d10626187 129
AnnaBridge 170:e95d10626187 130 #endif