Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Committer:
kadonotakashi
Date:
Thu Oct 11 02:27:46 2018 +0000
Revision:
3:f3764f852aa8
Parent:
0:8fdf9a60065b
Nucreo 446 + SSD1331 test version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kadonotakashi 0:8fdf9a60065b 1 /* mbed Microcontroller Library
kadonotakashi 0:8fdf9a60065b 2 * Copyright (c) 2017 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 #include <utility> // std::pair
kadonotakashi 0:8fdf9a60065b 17 #include "mbed.h"
kadonotakashi 0:8fdf9a60065b 18 #include "greentea-client/test_env.h"
kadonotakashi 0:8fdf9a60065b 19
kadonotakashi 0:8fdf9a60065b 20 uint32_t test_64(uint64_t ticks)
kadonotakashi 0:8fdf9a60065b 21 {
kadonotakashi 0:8fdf9a60065b 22 ticks >>= 3; // divide by 8
kadonotakashi 0:8fdf9a60065b 23 if (ticks > 0xFFFFFFFF) {
kadonotakashi 0:8fdf9a60065b 24 ticks /= 3;
kadonotakashi 0:8fdf9a60065b 25 } else {
kadonotakashi 0:8fdf9a60065b 26 ticks = (ticks * 0x55555556) >> 32; // divide by 3
kadonotakashi 0:8fdf9a60065b 27 }
kadonotakashi 0:8fdf9a60065b 28 return (uint32_t)(0xFFFFFFFF & ticks);
kadonotakashi 0:8fdf9a60065b 29 }
kadonotakashi 0:8fdf9a60065b 30
kadonotakashi 0:8fdf9a60065b 31 const char *result_str(bool result)
kadonotakashi 0:8fdf9a60065b 32 {
kadonotakashi 0:8fdf9a60065b 33 return result ? "[OK]" : "[FAIL]";
kadonotakashi 0:8fdf9a60065b 34 }
kadonotakashi 0:8fdf9a60065b 35
kadonotakashi 0:8fdf9a60065b 36 int main()
kadonotakashi 0:8fdf9a60065b 37 {
kadonotakashi 0:8fdf9a60065b 38 GREENTEA_SETUP(5, "default_auto");
kadonotakashi 0:8fdf9a60065b 39
kadonotakashi 0:8fdf9a60065b 40 bool result = true;
kadonotakashi 0:8fdf9a60065b 41
kadonotakashi 0:8fdf9a60065b 42 {
kadonotakashi 0:8fdf9a60065b 43 // 0xFFFFFFFF * 8 = 0x7fffffff8
kadonotakashi 0:8fdf9a60065b 44 std::pair<uint32_t, uint64_t> values = std::make_pair(0x55555555, 0x7FFFFFFF8);
kadonotakashi 0:8fdf9a60065b 45 uint32_t test_ret = test_64(values.second);
kadonotakashi 0:8fdf9a60065b 46 bool test_res = values.first == test_ret;
kadonotakashi 0:8fdf9a60065b 47 result = result && test_res;
kadonotakashi 0:8fdf9a60065b 48 printf("64bit: 0x7FFFFFFF8: expected 0x%lX got 0x%lX ... %s\r\n", values.first, test_ret, result_str(test_res));
kadonotakashi 0:8fdf9a60065b 49 }
kadonotakashi 0:8fdf9a60065b 50
kadonotakashi 0:8fdf9a60065b 51 {
kadonotakashi 0:8fdf9a60065b 52 // 0xFFFFFFFF * 24 = 0x17ffffffe8
kadonotakashi 0:8fdf9a60065b 53 std::pair<uint32_t, uint64_t> values = std::make_pair(0xFFFFFFFF, 0x17FFFFFFE8);
kadonotakashi 0:8fdf9a60065b 54 uint32_t test_ret = test_64(values.second);
kadonotakashi 0:8fdf9a60065b 55 bool test_res = values.first == test_ret;
kadonotakashi 0:8fdf9a60065b 56 result = result && test_res;
kadonotakashi 0:8fdf9a60065b 57 printf("64bit: 0x17FFFFFFE8: expected 0x%lX got 0x%lX ... %s\r\n", values.first, test_ret, result_str(test_res));
kadonotakashi 0:8fdf9a60065b 58 }
kadonotakashi 0:8fdf9a60065b 59
kadonotakashi 0:8fdf9a60065b 60 GREENTEA_TESTSUITE_RESULT(result);
kadonotakashi 0:8fdf9a60065b 61 }