Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sat Jun 03 00:22:44 2017 +0000
Revision:
46:b156ef445742
Parent:
18:6a4db94011d3
Final code for internal battlebot competition.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sahilmgandhi 18:6a4db94011d3 1 /* mbed Microcontroller Library
sahilmgandhi 18:6a4db94011d3 2 * Copyright (c) 2006-2015 ARM Limited
sahilmgandhi 18:6a4db94011d3 3 *
sahilmgandhi 18:6a4db94011d3 4 * Licensed under the Apache License, Version 2.0 (the "License");
sahilmgandhi 18:6a4db94011d3 5 * you may not use this file except in compliance with the License.
sahilmgandhi 18:6a4db94011d3 6 * You may obtain a copy of the License at
sahilmgandhi 18:6a4db94011d3 7 *
sahilmgandhi 18:6a4db94011d3 8 * http://www.apache.org/licenses/LICENSE-2.0
sahilmgandhi 18:6a4db94011d3 9 *
sahilmgandhi 18:6a4db94011d3 10 * Unless required by applicable law or agreed to in writing, software
sahilmgandhi 18:6a4db94011d3 11 * distributed under the License is distributed on an "AS IS" BASIS,
sahilmgandhi 18:6a4db94011d3 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sahilmgandhi 18:6a4db94011d3 13 * See the License for the specific language governing permissions and
sahilmgandhi 18:6a4db94011d3 14 * limitations under the License.
sahilmgandhi 18:6a4db94011d3 15 */
sahilmgandhi 18:6a4db94011d3 16 #ifndef PINMAP_FUNCTION_H
sahilmgandhi 18:6a4db94011d3 17 #define PINMAP_FUNCTION_H
sahilmgandhi 18:6a4db94011d3 18
sahilmgandhi 18:6a4db94011d3 19 #include <compiler.h>
sahilmgandhi 18:6a4db94011d3 20 #include "cmsis.h"
sahilmgandhi 18:6a4db94011d3 21 #include "PinNames.h"
sahilmgandhi 18:6a4db94011d3 22 #include "pinmux.h"
sahilmgandhi 18:6a4db94011d3 23 #include "pinmap.h"
sahilmgandhi 18:6a4db94011d3 24
sahilmgandhi 18:6a4db94011d3 25 #include "PeripheralPins.h"
sahilmgandhi 18:6a4db94011d3 26
sahilmgandhi 18:6a4db94011d3 27 #ifdef __cplusplus
sahilmgandhi 18:6a4db94011d3 28 extern "C" {
sahilmgandhi 18:6a4db94011d3 29 #endif
sahilmgandhi 18:6a4db94011d3 30
sahilmgandhi 18:6a4db94011d3 31 enum sercom_pad_selection {
sahilmgandhi 18:6a4db94011d3 32 SERCOM_USE_DEFAULT_PAD,
sahilmgandhi 18:6a4db94011d3 33 SERCOM_USE_EXTENDED_PAD,
sahilmgandhi 18:6a4db94011d3 34 };
sahilmgandhi 18:6a4db94011d3 35
sahilmgandhi 18:6a4db94011d3 36 /** Find the SERCOM peripheral of given pin
sahilmgandhi 18:6a4db94011d3 37 *
sahilmgandhi 18:6a4db94011d3 38 * Find and return the SERCOM peripheral of input pin, either from default pas, or from extended pads
sahilmgandhi 18:6a4db94011d3 39 * @param[in] pin1 First pin
sahilmgandhi 18:6a4db94011d3 40 * @param[in] pad_select Second pin
sahilmgandhi 18:6a4db94011d3 41 * @return SERCOM peripheral if found, else, NC
sahilmgandhi 18:6a4db94011d3 42 */
sahilmgandhi 18:6a4db94011d3 43 uint32_t pinmap_find_peripheral_from_pad(PinName pin, enum sercom_pad_selection pad_select);
sahilmgandhi 18:6a4db94011d3 44
sahilmgandhi 18:6a4db94011d3 45 /** Find the common SERCOM shared by two pins
sahilmgandhi 18:6a4db94011d3 46 *
sahilmgandhi 18:6a4db94011d3 47 * Finds the common SERCOM index of two input pins.
sahilmgandhi 18:6a4db94011d3 48 * If swapping the input argument gives different result, it means, two SERCOMs share both pins
sahilmgandhi 18:6a4db94011d3 49 * @param[in] pin1 First pin
sahilmgandhi 18:6a4db94011d3 50 * @param[in] pin2 Second pin
sahilmgandhi 18:6a4db94011d3 51 * @return SERCOM index if found, else, NC
sahilmgandhi 18:6a4db94011d3 52 */
sahilmgandhi 18:6a4db94011d3 53 uint32_t pinmap_merge_sercom(PinName pin1, PinName pin2);
sahilmgandhi 18:6a4db94011d3 54
sahilmgandhi 18:6a4db94011d3 55 /** Find the common SERCOM shared by four pins
sahilmgandhi 18:6a4db94011d3 56 *
sahilmgandhi 18:6a4db94011d3 57 * Finds the common SERCOM index shared by four input pins.
sahilmgandhi 18:6a4db94011d3 58 * If reversing the input argument order gives different result, it means, two SERCOMs share the pins
sahilmgandhi 18:6a4db94011d3 59 * @param[in] pin1 First pin
sahilmgandhi 18:6a4db94011d3 60 * @param[in] pin2 Second pin
sahilmgandhi 18:6a4db94011d3 61 * @param[in] pin3 Third pin
sahilmgandhi 18:6a4db94011d3 62 * @param[in] pin4 Fourth pin
sahilmgandhi 18:6a4db94011d3 63 * @return SERCOM index if found, else, NC
sahilmgandhi 18:6a4db94011d3 64 */
sahilmgandhi 18:6a4db94011d3 65 uint32_t pinmap_find_sercom(PinName pin1, PinName pin2, PinName pin3, PinName pin4);
sahilmgandhi 18:6a4db94011d3 66
sahilmgandhi 18:6a4db94011d3 67 /** Find the MUX function of input pin specific to given SERCOM index
sahilmgandhi 18:6a4db94011d3 68 *
sahilmgandhi 18:6a4db94011d3 69 * @param[in] pin Pin whose function is to be found out
sahilmgandhi 18:6a4db94011d3 70 * @param[in] sercom_index SERCOM index
sahilmgandhi 18:6a4db94011d3 71 * @return MUX function if found, else, NC
sahilmgandhi 18:6a4db94011d3 72 */
sahilmgandhi 18:6a4db94011d3 73 uint32_t pinmap_function_sercom(PinName pin, uint32_t sercom_index);
sahilmgandhi 18:6a4db94011d3 74
sahilmgandhi 18:6a4db94011d3 75 /** Find the MUX pad of input pin specific to given SERCOM index
sahilmgandhi 18:6a4db94011d3 76 *
sahilmgandhi 18:6a4db94011d3 77 * @param[in] pin Pin whose function is to be found out
sahilmgandhi 18:6a4db94011d3 78 * @param[in] sercom_index SERCOM index
sahilmgandhi 18:6a4db94011d3 79 * @return MUX pad if found, else, NC
sahilmgandhi 18:6a4db94011d3 80 */
sahilmgandhi 18:6a4db94011d3 81 uint32_t pinmap_pad_sercom(PinName pin, uint32_t sercom_index);
sahilmgandhi 18:6a4db94011d3 82
sahilmgandhi 18:6a4db94011d3 83 /** Find the MUX function of input pin specific to given SERCOM index
sahilmgandhi 18:6a4db94011d3 84 *
sahilmgandhi 18:6a4db94011d3 85 * @param[in] pin unused
sahilmgandhi 18:6a4db94011d3 86 * @param[in] sercom_index SERCOM index
sahilmgandhi 18:6a4db94011d3 87 * @return base address to SERCOM if found, else NC
sahilmgandhi 18:6a4db94011d3 88 */
sahilmgandhi 18:6a4db94011d3 89 uint32_t pinmap_peripheral_sercom(PinName pin, uint32_t sercom_index);
sahilmgandhi 18:6a4db94011d3 90
sahilmgandhi 18:6a4db94011d3 91 /** Find the channel index of a pin specific to a PWM instance
sahilmgandhi 18:6a4db94011d3 92 *
sahilmgandhi 18:6a4db94011d3 93 * @param[in] pin pin name
sahilmgandhi 18:6a4db94011d3 94 * @param[in] pwm pwm peripheral (unused now)
sahilmgandhi 18:6a4db94011d3 95 * @return Channel index of the specified pin
sahilmgandhi 18:6a4db94011d3 96 */
sahilmgandhi 18:6a4db94011d3 97 uint32_t pinmap_channel_pwm(PinName pin, PWMName pwm);
sahilmgandhi 18:6a4db94011d3 98
sahilmgandhi 18:6a4db94011d3 99 #ifdef __cplusplus
sahilmgandhi 18:6a4db94011d3 100 }
sahilmgandhi 18:6a4db94011d3 101 #endif
sahilmgandhi 18:6a4db94011d3 102
sahilmgandhi 18:6a4db94011d3 103 #endif /* PINMAP_FUNCTION_H */