mbed library sources

Dependents:   frdm_kl05z_gpio_test

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Jul 08 11:15:08 2014 +0100
Revision:
250:a49055e7a707
Parent:
227:7bd0639b8911
Child:
251:de9a1e4ffd79
Synchronized with git revision 3197042b65f8d28e856e1a7812d45e2fbe80e3f1

Full URL: https://github.com/mbedmicro/mbed/commit/3197042b65f8d28e856e1a7812d45e2fbe80e3f1/

error.h -> mbed_error.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 30:91c1d09ada54 1 /* mbed Microcontroller Library
mbed_official 30:91c1d09ada54 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 30:91c1d09ada54 3 *
mbed_official 30:91c1d09ada54 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 30:91c1d09ada54 5 * you may not use this file except in compliance with the License.
mbed_official 30:91c1d09ada54 6 * You may obtain a copy of the License at
mbed_official 30:91c1d09ada54 7 *
mbed_official 30:91c1d09ada54 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 30:91c1d09ada54 9 *
mbed_official 30:91c1d09ada54 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 30:91c1d09ada54 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 30:91c1d09ada54 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 30:91c1d09ada54 13 * See the License for the specific language governing permissions and
mbed_official 30:91c1d09ada54 14 * limitations under the License.
mbed_official 30:91c1d09ada54 15 */
mbed_official 227:7bd0639b8911 16 #include "mbed_assert.h"
mbed_official 30:91c1d09ada54 17 #include "pinmap.h"
mbed_official 250:a49055e7a707 18 #include "mbed_error.h"
mbed_official 30:91c1d09ada54 19
mbed_official 30:91c1d09ada54 20 void pin_function(PinName pin, int function) {
mbed_official 227:7bd0639b8911 21 MBED_ASSERT(pin != (PinName)NC);
mbed_official 30:91c1d09ada54 22 uint32_t offset = (uint32_t)pin & 0xff;
mbed_official 30:91c1d09ada54 23 __IO uint32_t *reg = (__IO uint32_t*)(LPC_IOCON_BASE + offset);
mbed_official 30:91c1d09ada54 24
mbed_official 30:91c1d09ada54 25 // pin function bits: [2:0] -> 111 = (0x7)
mbed_official 30:91c1d09ada54 26 *reg = (*reg & ~0x7) | (function & 0x7);
mbed_official 30:91c1d09ada54 27 }
mbed_official 30:91c1d09ada54 28
mbed_official 30:91c1d09ada54 29 void pin_mode(PinName pin, PinMode mode) {
mbed_official 227:7bd0639b8911 30 MBED_ASSERT(pin != (PinName)NC);
mbed_official 30:91c1d09ada54 31 uint32_t offset = (uint32_t)pin & 0xff;
mbed_official 227:7bd0639b8911 32 uint32_t drain = ((uint32_t)mode & (uint32_t)OpenDrain) >> 2;
mbed_official 30:91c1d09ada54 33
mbed_official 30:91c1d09ada54 34 __IO uint32_t *reg = (__IO uint32_t*)(LPC_IOCON_BASE + offset);
mbed_official 30:91c1d09ada54 35 uint32_t tmp = *reg;
mbed_official 30:91c1d09ada54 36
mbed_official 30:91c1d09ada54 37 // pin mode bits: [4:3] -> 11000 = (0x3 << 3)
mbed_official 30:91c1d09ada54 38 tmp &= ~(0x3 << 3);
mbed_official 30:91c1d09ada54 39 tmp |= (mode & 0x3) << 3;
mbed_official 30:91c1d09ada54 40
mbed_official 30:91c1d09ada54 41 // drain
mbed_official 30:91c1d09ada54 42 tmp &= ~(0x1 << 10);
mbed_official 30:91c1d09ada54 43 tmp |= drain << 10;
mbed_official 30:91c1d09ada54 44
mbed_official 30:91c1d09ada54 45 *reg = tmp;
mbed_official 30:91c1d09ada54 46 }