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-rpc by
parse_pins.cpp
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 "port_api.h" 00017 00018 namespace mbed { 00019 00020 PinName parse_pins(const char *str) { 00021 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) 00022 static const PinName pin_names[] = {p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 00023 , p15, p16, p17, p18, p19, p20, p21, p22, p23 00024 , p24, p25, p26, p27, p28, p29, p30}; 00025 #elif defined(TARGET_LPC1114) 00026 static const PinName pin_names[] = {dp1, dp2, dp4, dp5, dp6, dp9, dp10, dp11 00027 , dp13, dp14, dp15, dp16, dp17, dp18, dp23 00028 , dp24, dp25, dp26, dp27, dp28}; 00029 #elif defined(TARGET_LPC4088) 00030 static const PinName pin_names[] = {NC, NC, NC, NC, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 00031 , p15, p16, p17, p18, p19, p20, NC, NC, p23 00032 , p24, p25, p26, p27, p28, p29, p30, p31, p32 00033 , p33, p34, NC, NC, p37, p38, p39, NC, NC, NC, NC, NC, NC, NC}; 00034 #elif defined(TARGET_LPC4088_DM) 00035 static const PinName pin_names[] = {p1, p2, p3, p4, NC, NC, p7, p8, p9, p10, p11, p12, p13, p14 00036 , p15, p16, p17, p18, p19, p20, p21, p22, p23 00037 , p24, p25, p26, NC, NC, p29, p30, NC, NC 00038 , NC, NC, NC, NC, NC, NC, NC, NC, p41, p42, p43, p44, p45, p46}; 00039 #endif 00040 00041 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) || defined(TARGET_LPC812) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC1114) || defined(TARGET_RZ_A1H) 00042 if (str[0] == 'P') { // Pn_n 00043 uint32_t port = str[1] - '0'; 00044 uint32_t pin = str[3] - '0'; // Pn_n 00045 uint32_t pin2 = str[4] - '0'; // Pn_nn 00046 if (pin2 <= 9) { 00047 pin = pin * 10 + pin2; 00048 } 00049 return port_pin((PortName)port, pin); 00050 00051 #elif defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_K64F) || defined(TARGET_K22F) 00052 if (str[0] == 'P' && str[1] == 'T') { // PTxn 00053 uint32_t port = str[2] - 'A'; 00054 uint32_t pin = str[3] - '0'; // PTxn 00055 uint32_t pin2 = str[4] - '0'; // PTxnn 00056 00057 if (pin2 <= 9) { 00058 pin = pin * 10 + pin2; 00059 } 00060 return port_pin((PortName)port, pin); 00061 #endif 00062 00063 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) 00064 } else if (str[0] == 'p') { // pn 00065 uint32_t pin = str[1] - '0'; // pn 00066 uint32_t pin2 = str[2] - '0'; // pnn 00067 if (pin2 <= 9) { 00068 pin = pin * 10 + pin2; 00069 } 00070 if (pin < 5 || pin > 30) { 00071 return NC; 00072 } 00073 return pin_names[pin - 5]; 00074 #elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) 00075 } else if (str[0] == 'p') { // pn 00076 uint32_t pin = str[1] - '0'; // pn 00077 uint32_t pin2 = str[2] - '0'; // pnn 00078 if (pin2 <= 9) { 00079 pin = pin * 10 + pin2; 00080 } 00081 if (pin < 1 || pin > 46) { 00082 return NC; 00083 } 00084 return pin_names[pin - 1]; 00085 #endif 00086 00087 } else if (str[0] == 'L') { // LEDn 00088 switch (str[3]) { 00089 case '1' : return LED1; 00090 case '2' : return LED2; 00091 case '3' : return LED3; 00092 case '4' : return LED4; 00093 } 00094 00095 } else if (str[0] == 'U') { // USB?X 00096 switch (str[3]) { 00097 case 'T' : return USBTX; 00098 case 'R' : return USBRX; 00099 } 00100 } 00101 00102 return NC; 00103 } 00104 00105 }
Generated on Wed Jul 13 2022 20:00:26 by
1.7.2
