mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Jul 02 16:15:09 2015 +0100
Revision:
580:3c14cb9b87c5
Synchronized with git revision 213caf296f26963a7bea129b8ec4f33bbd1e6588

Full URL: https://github.com/mbedmicro/mbed/commit/213caf296f26963a7bea129b8ec4f33bbd1e6588/

commit of mps2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 580:3c14cb9b87c5 1 /* mbed Microcontroller Library
mbed_official 580:3c14cb9b87c5 2 * Copyright (c) 2006-2015 ARM Limited
mbed_official 580:3c14cb9b87c5 3 *
mbed_official 580:3c14cb9b87c5 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 580:3c14cb9b87c5 5 * you may not use this file except in compliance with the License.
mbed_official 580:3c14cb9b87c5 6 * You may obtain a copy of the License at
mbed_official 580:3c14cb9b87c5 7 *
mbed_official 580:3c14cb9b87c5 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 580:3c14cb9b87c5 9 *
mbed_official 580:3c14cb9b87c5 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 580:3c14cb9b87c5 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 580:3c14cb9b87c5 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 580:3c14cb9b87c5 13 * See the License for the specific language governing permissions and
mbed_official 580:3c14cb9b87c5 14 * limitations under the License.
mbed_official 580:3c14cb9b87c5 15 * ----------------------------------------------------------------
mbed_official 580:3c14cb9b87c5 16 * File: fpga.c
mbed_official 580:3c14cb9b87c5 17 * Release: Version 1.0
mbed_official 580:3c14cb9b87c5 18 * ----------------------------------------------------------------
mbed_official 580:3c14cb9b87c5 19 */
mbed_official 580:3c14cb9b87c5 20
mbed_official 580:3c14cb9b87c5 21 /*
mbed_official 580:3c14cb9b87c5 22 * Code implementation file for the fpga functions.
mbed_official 580:3c14cb9b87c5 23 */
mbed_official 580:3c14cb9b87c5 24
mbed_official 580:3c14cb9b87c5 25 #include "SMM_MPS2.h" // MPS2 common header
mbed_official 580:3c14cb9b87c5 26
mbed_official 580:3c14cb9b87c5 27 // Function to delay n*ticks (25MHz = 40nS per tick)
mbed_official 580:3c14cb9b87c5 28 // Used for I2C drivers
mbed_official 580:3c14cb9b87c5 29 void i2c_delay(unsigned int tick)
mbed_official 580:3c14cb9b87c5 30 {
mbed_official 580:3c14cb9b87c5 31 unsigned int end;
mbed_official 580:3c14cb9b87c5 32 unsigned int start;
mbed_official 580:3c14cb9b87c5 33
mbed_official 580:3c14cb9b87c5 34 start = MPS2_FPGAIO->COUNTER;
mbed_official 580:3c14cb9b87c5 35 end = start + (tick);
mbed_official 580:3c14cb9b87c5 36
mbed_official 580:3c14cb9b87c5 37 if(end >= start)
mbed_official 580:3c14cb9b87c5 38 {
mbed_official 580:3c14cb9b87c5 39 while (MPS2_FPGAIO->COUNTER >= start && MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 40 }
mbed_official 580:3c14cb9b87c5 41 else
mbed_official 580:3c14cb9b87c5 42 {
mbed_official 580:3c14cb9b87c5 43 while (MPS2_FPGAIO->COUNTER >= start);
mbed_official 580:3c14cb9b87c5 44 while (MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 45 }
mbed_official 580:3c14cb9b87c5 46 }
mbed_official 580:3c14cb9b87c5 47
mbed_official 580:3c14cb9b87c5 48 /* Sleep function to delay n*mS
mbed_official 580:3c14cb9b87c5 49 * Uses FPGA counter.
mbed_official 580:3c14cb9b87c5 50 */
mbed_official 580:3c14cb9b87c5 51 void Sleepms(unsigned int msec)
mbed_official 580:3c14cb9b87c5 52 {
mbed_official 580:3c14cb9b87c5 53 unsigned int end;
mbed_official 580:3c14cb9b87c5 54 unsigned int start;
mbed_official 580:3c14cb9b87c5 55
mbed_official 580:3c14cb9b87c5 56 start = MPS2_FPGAIO->COUNTER;
mbed_official 580:3c14cb9b87c5 57 end = start + (25 * msec * 1000);
mbed_official 580:3c14cb9b87c5 58
mbed_official 580:3c14cb9b87c5 59 if(end >= start)
mbed_official 580:3c14cb9b87c5 60 {
mbed_official 580:3c14cb9b87c5 61 while (MPS2_FPGAIO->COUNTER >= start && MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 62 }
mbed_official 580:3c14cb9b87c5 63 else
mbed_official 580:3c14cb9b87c5 64 {
mbed_official 580:3c14cb9b87c5 65 while (MPS2_FPGAIO->COUNTER >= start);
mbed_official 580:3c14cb9b87c5 66 while (MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 67 }
mbed_official 580:3c14cb9b87c5 68 }
mbed_official 580:3c14cb9b87c5 69
mbed_official 580:3c14cb9b87c5 70 /* Sleep function to delay n*uS
mbed_official 580:3c14cb9b87c5 71 */
mbed_official 580:3c14cb9b87c5 72 void Sleepus(unsigned int usec)
mbed_official 580:3c14cb9b87c5 73 {
mbed_official 580:3c14cb9b87c5 74 unsigned int end;
mbed_official 580:3c14cb9b87c5 75 unsigned int start;
mbed_official 580:3c14cb9b87c5 76
mbed_official 580:3c14cb9b87c5 77 start = MPS2_FPGAIO->COUNTER;
mbed_official 580:3c14cb9b87c5 78 end = start + (25 * usec);
mbed_official 580:3c14cb9b87c5 79
mbed_official 580:3c14cb9b87c5 80 if(end >= start)
mbed_official 580:3c14cb9b87c5 81 {
mbed_official 580:3c14cb9b87c5 82 while (MPS2_FPGAIO->COUNTER >= start && MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 83 }
mbed_official 580:3c14cb9b87c5 84 else
mbed_official 580:3c14cb9b87c5 85 {
mbed_official 580:3c14cb9b87c5 86 while (MPS2_FPGAIO->COUNTER >= start);
mbed_official 580:3c14cb9b87c5 87 while (MPS2_FPGAIO->COUNTER < end);
mbed_official 580:3c14cb9b87c5 88 }
mbed_official 580:3c14cb9b87c5 89 }
mbed_official 580:3c14cb9b87c5 90