Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Committer:
kadonotakashi
Date:
Wed Oct 10 00:33:53 2018 +0000
Revision:
0:8fdf9a60065b
how to make mbed librry

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kadonotakashi 0:8fdf9a60065b 1 /* mbed Microcontroller Library
kadonotakashi 0:8fdf9a60065b 2 * Copyright (c) 2006-2013 ARM Limited
kadonotakashi 0:8fdf9a60065b 3 *
kadonotakashi 0:8fdf9a60065b 4 * Licensed under the Apache License, Version 2.0 (the "License");
kadonotakashi 0:8fdf9a60065b 5 * you may not use this file except in compliance with the License.
kadonotakashi 0:8fdf9a60065b 6 * You may obtain a copy of the License at
kadonotakashi 0:8fdf9a60065b 7 *
kadonotakashi 0:8fdf9a60065b 8 * http://www.apache.org/licenses/LICENSE-2.0
kadonotakashi 0:8fdf9a60065b 9 *
kadonotakashi 0:8fdf9a60065b 10 * Unless required by applicable law or agreed to in writing, software
kadonotakashi 0:8fdf9a60065b 11 * distributed under the License is distributed on an "AS IS" BASIS,
kadonotakashi 0:8fdf9a60065b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kadonotakashi 0:8fdf9a60065b 13 * See the License for the specific language governing permissions and
kadonotakashi 0:8fdf9a60065b 14 * limitations under the License.
kadonotakashi 0:8fdf9a60065b 15 */
kadonotakashi 0:8fdf9a60065b 16
kadonotakashi 0:8fdf9a60065b 17 // This implementation of the wait functions will be compiled only
kadonotakashi 0:8fdf9a60065b 18 // if the RTOS is present.
kadonotakashi 0:8fdf9a60065b 19 #ifdef MBED_CONF_RTOS_PRESENT
kadonotakashi 0:8fdf9a60065b 20
kadonotakashi 0:8fdf9a60065b 21 #include "platform/mbed_wait_api.h"
kadonotakashi 0:8fdf9a60065b 22 #include "hal/us_ticker_api.h"
kadonotakashi 0:8fdf9a60065b 23 #include "rtos/rtos.h"
kadonotakashi 0:8fdf9a60065b 24 #include "platform/mbed_critical.h"
kadonotakashi 0:8fdf9a60065b 25 #include "platform/mbed_power_mgmt.h"
kadonotakashi 0:8fdf9a60065b 26
kadonotakashi 0:8fdf9a60065b 27 void wait(float s)
kadonotakashi 0:8fdf9a60065b 28 {
kadonotakashi 0:8fdf9a60065b 29 wait_us(s * 1000000.0f);
kadonotakashi 0:8fdf9a60065b 30 }
kadonotakashi 0:8fdf9a60065b 31
kadonotakashi 0:8fdf9a60065b 32 void wait_ms(int ms)
kadonotakashi 0:8fdf9a60065b 33 {
kadonotakashi 0:8fdf9a60065b 34 wait_us(ms * 1000);
kadonotakashi 0:8fdf9a60065b 35 }
kadonotakashi 0:8fdf9a60065b 36
kadonotakashi 0:8fdf9a60065b 37 void wait_us(int us)
kadonotakashi 0:8fdf9a60065b 38 {
kadonotakashi 0:8fdf9a60065b 39 const ticker_data_t *const ticker = get_us_ticker_data();
kadonotakashi 0:8fdf9a60065b 40
kadonotakashi 0:8fdf9a60065b 41 uint32_t start = ticker_read(ticker);
kadonotakashi 0:8fdf9a60065b 42 if ((us >= 1000) && core_util_are_interrupts_enabled()) {
kadonotakashi 0:8fdf9a60065b 43 // Use the RTOS to wait for millisecond delays if possible
kadonotakashi 0:8fdf9a60065b 44 sleep_manager_lock_deep_sleep();
kadonotakashi 0:8fdf9a60065b 45 Thread::wait((uint32_t)us / 1000);
kadonotakashi 0:8fdf9a60065b 46 sleep_manager_unlock_deep_sleep();
kadonotakashi 0:8fdf9a60065b 47 }
kadonotakashi 0:8fdf9a60065b 48 // Use busy waiting for sub-millisecond delays, or for the whole
kadonotakashi 0:8fdf9a60065b 49 // interval if interrupts are not enabled
kadonotakashi 0:8fdf9a60065b 50 while ((ticker_read(ticker) - start) < (uint32_t)us);
kadonotakashi 0:8fdf9a60065b 51 }
kadonotakashi 0:8fdf9a60065b 52
kadonotakashi 0:8fdf9a60065b 53 #endif // #if MBED_CONF_RTOS_PRESENT
kadonotakashi 0:8fdf9a60065b 54