mbed.h library with any bug fixes AV finds.

Dependents:   micromouse4_encoder_testing PID_Test Lab1_Test WorkingPID ... more

Committer:
aravindsv
Date:
Mon Nov 02 03:07:12 2015 +0000
Revision:
1:ebce2ad32f95
Parent:
0:ba7650f404af
Changed the RCC timeout value to 500 ms, so total code startup time before program starts running is ~1s. Hopefully no side-effects from lower startup timeouts

Who changed what in which revision?

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