mbed-os for GR-LYCHEE

Dependents:   mbed-os-example-blinky-gr-lychee GR-Boads_Camera_sample GR-Boards_Audio_Recoder GR-Boads_Camera_DisplayApp ... more

Committer:
dkato
Date:
Fri Feb 02 05:42:23 2018 +0000
Revision:
0:f782d9c66c49
mbed-os for GR-LYCHEE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dkato 0:f782d9c66c49 1
dkato 0:f782d9c66c49 2 /** \addtogroup hal */
dkato 0:f782d9c66c49 3 /** @{*/
dkato 0:f782d9c66c49 4 /* mbed Microcontroller Library
dkato 0:f782d9c66c49 5 * Copyright (c) 2006-2016 ARM Limited
dkato 0:f782d9c66c49 6 *
dkato 0:f782d9c66c49 7 * Licensed under the Apache License, Version 2.0 (the "License");
dkato 0:f782d9c66c49 8 * you may not use this file except in compliance with the License.
dkato 0:f782d9c66c49 9 * You may obtain a copy of the License at
dkato 0:f782d9c66c49 10 *
dkato 0:f782d9c66c49 11 * http://www.apache.org/licenses/LICENSE-2.0
dkato 0:f782d9c66c49 12 *
dkato 0:f782d9c66c49 13 * Unless required by applicable law or agreed to in writing, software
dkato 0:f782d9c66c49 14 * distributed under the License is distributed on an "AS IS" BASIS,
dkato 0:f782d9c66c49 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dkato 0:f782d9c66c49 16 * See the License for the specific language governing permissions and
dkato 0:f782d9c66c49 17 * limitations under the License.
dkato 0:f782d9c66c49 18 */
dkato 0:f782d9c66c49 19 #ifndef MBED_CAN_API_H
dkato 0:f782d9c66c49 20 #define MBED_CAN_API_H
dkato 0:f782d9c66c49 21
dkato 0:f782d9c66c49 22 #include "device.h"
dkato 0:f782d9c66c49 23
dkato 0:f782d9c66c49 24 #if DEVICE_CAN
dkato 0:f782d9c66c49 25
dkato 0:f782d9c66c49 26 #include "PinNames.h"
dkato 0:f782d9c66c49 27 #include "PeripheralNames.h"
dkato 0:f782d9c66c49 28 #include "hal/can_helper.h"
dkato 0:f782d9c66c49 29
dkato 0:f782d9c66c49 30 #ifdef __cplusplus
dkato 0:f782d9c66c49 31 extern "C" {
dkato 0:f782d9c66c49 32 #endif
dkato 0:f782d9c66c49 33
dkato 0:f782d9c66c49 34 typedef enum {
dkato 0:f782d9c66c49 35 IRQ_RX,
dkato 0:f782d9c66c49 36 IRQ_TX,
dkato 0:f782d9c66c49 37 IRQ_ERROR,
dkato 0:f782d9c66c49 38 IRQ_OVERRUN,
dkato 0:f782d9c66c49 39 IRQ_WAKEUP,
dkato 0:f782d9c66c49 40 IRQ_PASSIVE,
dkato 0:f782d9c66c49 41 IRQ_ARB,
dkato 0:f782d9c66c49 42 IRQ_BUS,
dkato 0:f782d9c66c49 43 IRQ_READY
dkato 0:f782d9c66c49 44 } CanIrqType;
dkato 0:f782d9c66c49 45
dkato 0:f782d9c66c49 46
dkato 0:f782d9c66c49 47 typedef enum {
dkato 0:f782d9c66c49 48 MODE_RESET,
dkato 0:f782d9c66c49 49 MODE_NORMAL,
dkato 0:f782d9c66c49 50 MODE_SILENT,
dkato 0:f782d9c66c49 51 MODE_TEST_LOCAL,
dkato 0:f782d9c66c49 52 MODE_TEST_GLOBAL,
dkato 0:f782d9c66c49 53 MODE_TEST_SILENT
dkato 0:f782d9c66c49 54 } CanMode;
dkato 0:f782d9c66c49 55
dkato 0:f782d9c66c49 56 typedef void (*can_irq_handler)(uint32_t id, CanIrqType type);
dkato 0:f782d9c66c49 57
dkato 0:f782d9c66c49 58 typedef struct can_s can_t;
dkato 0:f782d9c66c49 59
dkato 0:f782d9c66c49 60 void can_init (can_t *obj, PinName rd, PinName td);
dkato 0:f782d9c66c49 61 void can_free (can_t *obj);
dkato 0:f782d9c66c49 62 int can_frequency(can_t *obj, int hz);
dkato 0:f782d9c66c49 63
dkato 0:f782d9c66c49 64 void can_irq_init (can_t *obj, can_irq_handler handler, uint32_t id);
dkato 0:f782d9c66c49 65 void can_irq_free (can_t *obj);
dkato 0:f782d9c66c49 66 void can_irq_set (can_t *obj, CanIrqType irq, uint32_t enable);
dkato 0:f782d9c66c49 67
dkato 0:f782d9c66c49 68 int can_write (can_t *obj, CAN_Message, int cc);
dkato 0:f782d9c66c49 69 int can_read (can_t *obj, CAN_Message *msg, int handle);
dkato 0:f782d9c66c49 70 int can_mode (can_t *obj, CanMode mode);
dkato 0:f782d9c66c49 71 int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle);
dkato 0:f782d9c66c49 72 void can_reset (can_t *obj);
dkato 0:f782d9c66c49 73 unsigned char can_rderror (can_t *obj);
dkato 0:f782d9c66c49 74 unsigned char can_tderror (can_t *obj);
dkato 0:f782d9c66c49 75 void can_monitor (can_t *obj, int silent);
dkato 0:f782d9c66c49 76
dkato 0:f782d9c66c49 77 #ifdef __cplusplus
dkato 0:f782d9c66c49 78 };
dkato 0:f782d9c66c49 79 #endif
dkato 0:f782d9c66c49 80
dkato 0:f782d9c66c49 81 #endif // MBED_CAN_API_H
dkato 0:f782d9c66c49 82
dkato 0:f782d9c66c49 83 #endif
dkato 0:f782d9c66c49 84
dkato 0:f782d9c66c49 85 /** @}*/