MacroRat / MouseCode

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sat May 27 03:37:24 2017 +0000
Revision:
37:3dcc95e9321c
Parent:
18:6a4db94011d3
Need to get centered more before turns (so after moving forward). Also fix when both walls are missing!

Who changed what in which revision?

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