Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
pinmap_common.c
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #include "pinmap.h" 00017 #include "error.h" 00018 00019 void pinmap_pinout(PinName pin, const PinMap *map) { 00020 if (pin == NC) return; 00021 00022 while (map->pin != NC) { 00023 if (map->pin == pin) { 00024 pin_function(pin, map->function); 00025 pin_mode(pin, PullNone); 00026 return; 00027 } 00028 map++; 00029 } 00030 error("could not pinout"); 00031 } 00032 00033 uint32_t pinmap_merge(uint32_t a, uint32_t b) { 00034 // both are the same (inc both NC) 00035 if (a == b) return a; 00036 00037 // one (or both) is not connected 00038 if (a == (uint32_t)NC) return b; 00039 if (b == (uint32_t)NC) return a; 00040 00041 // mis-match error case 00042 error("pinmap mis-match"); 00043 return (uint32_t)NC; 00044 } 00045 00046 uint32_t pinmap_peripheral(PinName pin, const PinMap* map) { 00047 if (pin == (uint32_t)NC) 00048 return (uint32_t)NC; 00049 00050 while (map->pin != NC) { 00051 if (map->pin == pin) 00052 return map->peripheral; 00053 map++; 00054 } 00055 00056 // no mapping available 00057 error("pinmap not found for peripheral"); 00058 return (uint32_t)NC; 00059 }
Generated on Tue Jul 12 2022 21:46:39 by
