亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? osram96x16.c

?? FreeRTOS is a portable, open source, mini Real Time Kernel - a free to download and royalty free RTO
?? C
?? 第 1 頁 / 共 3 頁
字號:
//*****************************************************************************
//
// osram96x16.c - Driver for the OSRAM 96x16 graphical OLED display.
//
// Copyright (c) 2006 Luminary Micro, Inc.  All rights reserved.
//
// Software License Agreement
//
// Luminary Micro, Inc. (LMI) is supplying this software for use solely and
// exclusively on LMI's Stellaris Family of microcontroller products.
//
// The software is owned by LMI and/or its suppliers, and is protected under
// applicable copyright laws.  All rights are reserved.  Any use in violation
// of the foregoing restrictions may subject the user to criminal sanctions
// under applicable laws, as well as to civil liability for the breach of the
// terms and conditions of this license.
//
// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
//
// This is part of revision 991 of the Stellaris Driver Library.
//
//*****************************************************************************

//*****************************************************************************
//
//! \addtogroup ev_lm3s811_api
//! @{
//
//*****************************************************************************

#include "DriverLib.h"
#include "osram96x16.h"
#define ewarm
//*****************************************************************************
//
// The I2C slave address of the SSD0303 controller on the OLED display.
//
//*****************************************************************************
#define SSD0303_ADDR            0x3d

//*****************************************************************************
//
// A 5x7 font (in a 6x8 cell, where the sixth column is omitted from this
// table) for displaying text on the OLED display.  The data is organized as
// bytes from the left column to the right column, with each byte containing
// the top row in the LSB and the bottom row in the MSB.
//
//*****************************************************************************
static const unsigned char g_pucFont[95][5] =
{
    { 0x00, 0x00, 0x00, 0x00, 0x00 }, // " "
    { 0x00, 0x00, 0x4f, 0x00, 0x00 }, // !
    { 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
    { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
    { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
    { 0x23, 0x13, 0x08, 0x64, 0x62 }, // %
    { 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
    { 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
    { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
    { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
    { 0x14, 0x08, 0x3e, 0x08, 0x14 }, // *
    { 0x08, 0x08, 0x3e, 0x08, 0x08 }, // +
    { 0x00, 0x50, 0x30, 0x00, 0x00 }, // ,
    { 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
    { 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
    { 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
    { 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 0
    { 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 1
    { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
    { 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 3
    { 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 4
    { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
    { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 6
    { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
    { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
    { 0x06, 0x49, 0x49, 0x29, 0x1e }, // 9
    { 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
    { 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
    { 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
    { 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
    { 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
    { 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
    { 0x32, 0x49, 0x79, 0x41, 0x3e }, // @
    { 0x7e, 0x11, 0x11, 0x11, 0x7e }, // A
    { 0x7f, 0x49, 0x49, 0x49, 0x36 }, // B
    { 0x3e, 0x41, 0x41, 0x41, 0x22 }, // C
    { 0x7f, 0x41, 0x41, 0x22, 0x1c }, // D
    { 0x7f, 0x49, 0x49, 0x49, 0x41 }, // E
    { 0x7f, 0x09, 0x09, 0x09, 0x01 }, // F
    { 0x3e, 0x41, 0x49, 0x49, 0x7a }, // G
    { 0x7f, 0x08, 0x08, 0x08, 0x7f }, // H
    { 0x00, 0x41, 0x7f, 0x41, 0x00 }, // I
    { 0x20, 0x40, 0x41, 0x3f, 0x01 }, // J
    { 0x7f, 0x08, 0x14, 0x22, 0x41 }, // K
    { 0x7f, 0x40, 0x40, 0x40, 0x40 }, // L
    { 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // M
    { 0x7f, 0x04, 0x08, 0x10, 0x7f }, // N
    { 0x3e, 0x41, 0x41, 0x41, 0x3e }, // O
    { 0x7f, 0x09, 0x09, 0x09, 0x06 }, // P
    { 0x3e, 0x41, 0x51, 0x21, 0x5e }, // Q
    { 0x7f, 0x09, 0x19, 0x29, 0x46 }, // R
    { 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
    { 0x01, 0x01, 0x7f, 0x01, 0x01 }, // T
    { 0x3f, 0x40, 0x40, 0x40, 0x3f }, // U
    { 0x1f, 0x20, 0x40, 0x20, 0x1f }, // V
    { 0x3f, 0x40, 0x38, 0x40, 0x3f }, // W
    { 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
    { 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
    { 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
    { 0x00, 0x7f, 0x41, 0x41, 0x00 }, // [
    { 0x02, 0x04, 0x08, 0x10, 0x20 }, // "\"
    { 0x00, 0x41, 0x41, 0x7f, 0x00 }, // ]
    { 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
    { 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
    { 0x00, 0x01, 0x02, 0x04, 0x00 }, // `
    { 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
    { 0x7f, 0x48, 0x44, 0x44, 0x38 }, // b
    { 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
    { 0x38, 0x44, 0x44, 0x48, 0x7f }, // d
    { 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
    { 0x08, 0x7e, 0x09, 0x01, 0x02 }, // f
    { 0x0c, 0x52, 0x52, 0x52, 0x3e }, // g
    { 0x7f, 0x08, 0x04, 0x04, 0x78 }, // h
    { 0x00, 0x44, 0x7d, 0x40, 0x00 }, // i
    { 0x20, 0x40, 0x44, 0x3d, 0x00 }, // j
    { 0x7f, 0x10, 0x28, 0x44, 0x00 }, // k
    { 0x00, 0x41, 0x7f, 0x40, 0x00 }, // l
    { 0x7c, 0x04, 0x18, 0x04, 0x78 }, // m
    { 0x7c, 0x08, 0x04, 0x04, 0x78 }, // n
    { 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
    { 0x7c, 0x14, 0x14, 0x14, 0x08 }, // p
    { 0x08, 0x14, 0x14, 0x18, 0x7c }, // q
    { 0x7c, 0x08, 0x04, 0x04, 0x08 }, // r
    { 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
    { 0x04, 0x3f, 0x44, 0x40, 0x20 }, // t
    { 0x3c, 0x40, 0x40, 0x20, 0x7c }, // u
    { 0x1c, 0x20, 0x40, 0x20, 0x1c }, // v
    { 0x3c, 0x40, 0x30, 0x40, 0x3c }, // w
    { 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
    { 0x0c, 0x50, 0x50, 0x50, 0x3c }, // y
    { 0x44, 0x64, 0x54, 0x4c, 0x44 }, // z
    { 0x00, 0x08, 0x36, 0x41, 0x00 }, // {
    { 0x00, 0x00, 0x7f, 0x00, 0x00 }, // |
    { 0x00, 0x41, 0x36, 0x08, 0x00 }, // }
    { 0x02, 0x01, 0x02, 0x04, 0x02 }, // ~
};

//*****************************************************************************
//
// The sequence of commands used to initialize the SSD0303 controller.  Each
// command is described as follows:  there is a byte specifying the number of
// bytes in the I2C transfer, followed by that many bytes of command data.
//
//*****************************************************************************
static const unsigned char g_pucOSRAMInit[] =
{
    //
    // Turn off the panel
    //
    0x04, 0x80, 0xae, 0x80, 0xe3,

    //
    // Set lower column address
    //
    0x04, 0x80, 0x04, 0x80, 0xe3,

    //
    // Set higher column address
    //
    0x04, 0x80, 0x12, 0x80, 0xe3,

    //
    // Set contrast control register
    //
    0x06, 0x80, 0x81, 0x80, 0x2b, 0x80, 0xe3,

    //
    // Set segment re-map
    //
    0x04, 0x80, 0xa1, 0x80, 0xe3,

    //
    // Set display start line
    //
    0x04, 0x80, 0x40, 0x80, 0xe3,

    //
    // Set display offset
    //
    0x06, 0x80, 0xd3, 0x80, 0x00, 0x80, 0xe3,

    //
    // Set multiplex ratio
    //
    0x06, 0x80, 0xa8, 0x80, 0x0f, 0x80, 0xe3,

    //
    // Set the display to normal mode
    //
    0x04, 0x80, 0xa4, 0x80, 0xe3,

    //
    // Non-inverted display
    //
    0x04, 0x80, 0xa6, 0x80, 0xe3,

    //
    // Set the page address
    //
    0x04, 0x80, 0xb0, 0x80, 0xe3,

    //
    // Set COM output scan direction
    //
    0x04, 0x80, 0xc8, 0x80, 0xe3,

    //
    // Set display clock divide ratio/oscillator frequency
    //
    0x06, 0x80, 0xd5, 0x80, 0x72, 0x80, 0xe3,

    //
    // Enable mono mode
    //
    0x06, 0x80, 0xd8, 0x80, 0x00, 0x80, 0xe3,

    //
    // Set pre-charge period
    //
    0x06, 0x80, 0xd9, 0x80, 0x22, 0x80, 0xe3,

    //
    // Set COM pins hardware configuration
    //
    0x06, 0x80, 0xda, 0x80, 0x12, 0x80, 0xe3,

    //
    // Set VCOM deslect level
    //
    0x06, 0x80, 0xdb, 0x80, 0x0f, 0x80, 0xe3,

    //
    // Set DC-DC on
    //
    0x06, 0x80, 0xad, 0x80, 0x8b, 0x80, 0xe3,

    //
    // Turn on the panel
    //
    0x04, 0x80, 0xaf, 0x80, 0xe3,
};

//*****************************************************************************
//
// The inter-byte delay required by the SSD0303 OLED controller.
//
//*****************************************************************************
static unsigned long g_ulDelay;

//*****************************************************************************
//
//! \internal
//!
//! Provide a small delay.
//!
//! \param ulCount is the number of delay loop iterations to perform.
//!
//! Since the SSD0303 controller needs a delay between bytes written to it over
//! the I2C bus, this function provides a means of generating that delay.  It
//! is written in assembly to keep the delay consistent across tool chains,
//! avoiding the need to tune the delay based on the tool chain in use.
//!
//! \return None.
//
//*****************************************************************************
#if defined(ewarm)
static void
OSRAMDelay(unsigned long ulCount)
{
    __asm("    subs    r0, #1\n"
          "    bne.n     OSRAMDelay\n"
          "    bx      lr");
}
#endif
#if defined(gcc)
static void __attribute__((naked))
OSRAMDelay(unsigned long ulCount)
{
    __asm("    subs    r0, #1\n"
          "    bne     OSRAMDelay\n"
          "    bx      lr");
}
#endif
#if defined(rvmdk) || defined(__ARMCC_VERSION)
__asm void
OSRAMDelay(unsigned long ulCount)
{
    subs    r0, #1;
    bne     OSRAMDelay;
    bx      lr;
}
#endif

//*****************************************************************************
//
//! \internal
//!
//! Start a transfer to the SSD0303 controller.
//!
//! \param ucChar is the first byte to be written to the controller.
//!
//! This function will start a transfer to the SSD0303 controller via the I2C
//! bus.
//!
//! The data is written in a polled fashion; this function will not return
//! until the byte has been written to the controller.
//!
//! \return None.
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清一级片在线观看| 亚洲精品美腿丝袜| 欧美日韩在线播放三区四区| 九九精品一区二区| 综合激情成人伊人| 国产嫩草影院久久久久| 国产综合色产在线精品| 亚洲综合免费观看高清在线观看| 久久久亚洲综合| 欧美日韩色一区| av亚洲精华国产精华精| 国产美女av一区二区三区| 婷婷久久综合九色国产成人| 国产精品久久午夜| 久久亚洲春色中文字幕久久久| 欧美视频三区在线播放| 91色视频在线| 粗大黑人巨茎大战欧美成人| 九九精品视频在线看| 日精品一区二区| 亚洲一区二区黄色| 亚洲美女免费视频| 亚洲欧洲性图库| 国产欧美一区二区精品性| 日韩午夜av电影| 欧美电影一区二区| 欧美日韩1234| 欧美喷潮久久久xxxxx| 欧美影视一区在线| 91免费精品国自产拍在线不卡| 国产乱码一区二区三区| 美女国产一区二区| 蜜臀91精品一区二区三区 | 欧美精品aⅴ在线视频| 一本久久a久久免费精品不卡| 成人aaaa免费全部观看| 成人综合激情网| 国产一区美女在线| 蜜臀av一区二区在线免费观看| 亚洲成在人线在线播放| 亚洲国产欧美在线| 香蕉成人啪国产精品视频综合网| 午夜成人在线视频| 日本亚洲电影天堂| 精品一区二区免费在线观看| 激情综合色综合久久综合| 国产一区在线视频| 成人黄色av网站在线| 99re这里只有精品首页| 色综合天天做天天爱| 欧美色爱综合网| 91精品国产综合久久蜜臀| 日韩精品中午字幕| 久久精品男人天堂av| 亚洲国产精品v| 亚洲狼人国产精品| 亚洲成年人网站在线观看| 乱一区二区av| 粗大黑人巨茎大战欧美成人| 91色九色蝌蚪| 欧美日韩高清一区二区三区| 欧美变态tickle挠乳网站| 久久综合九色欧美综合狠狠 | 亚洲国产精品一区二区久久| 亚洲午夜电影在线观看| 免费国产亚洲视频| 国产成人精品www牛牛影视| 99久久精品国产毛片| 欧美性色黄大片| 精品国产乱码久久久久久夜甘婷婷| 久久影院午夜论| 中文字幕亚洲区| 日本女优在线视频一区二区| 风流少妇一区二区| 欧美日韩视频在线一区二区| 久久亚洲一区二区三区四区| 国产精品传媒入口麻豆| 午夜欧美视频在线观看| 国产98色在线|日韩| 色吊一区二区三区| 久久免费午夜影院| 亚洲一区二区三区影院| 国产一区二区三区在线观看免费 | 国产乱码精品一区二区三区五月婷 | 日韩欧美国产1| 亚洲国产精品成人久久综合一区| 亚洲国产一区二区在线播放| 国产一区免费电影| 欧美日本免费一区二区三区| 欧美激情中文不卡| 免费美女久久99| 91理论电影在线观看| 日韩三级视频中文字幕| 亚洲女同一区二区| 国产在线精品一区二区三区不卡| 欧美综合亚洲图片综合区| 2020国产精品自拍| 午夜一区二区三区在线观看| 成人久久视频在线观看| 日韩美女一区二区三区四区| 亚洲精品水蜜桃| 国产一区二区三区免费播放| 欧美午夜精品一区| 欧美激情一区二区| 日本vs亚洲vs韩国一区三区二区| 成人污污视频在线观看| 日韩美女主播在线视频一区二区三区| 亚洲精品免费在线| 99免费精品在线| 国产日产欧美精品一区二区三区| 日日夜夜免费精品| 在线观看国产一区二区| 国产精品久久久久久妇女6080| 国产主播一区二区三区| 日韩亚洲欧美一区| 视频在线观看一区| 欧美三级电影一区| 亚洲人吸女人奶水| av成人免费在线| 国产色产综合产在线视频| 国产一区二区三区在线看麻豆| 欧美日韩精品系列| 亚洲福利视频一区二区| 在线视频国产一区| 亚洲色图在线看| av色综合久久天堂av综合| 国产夜色精品一区二区av| 国产一区二区主播在线| 2024国产精品视频| 狠狠久久亚洲欧美| 精品处破学生在线二十三| 日本91福利区| 精品久久久久久最新网址| 美女爽到高潮91| 欧美成人精品3d动漫h| 麻豆精品一二三| 精品久久人人做人人爰| 国产精品一区二区免费不卡 | 制服丝袜国产精品| 图片区小说区国产精品视频| 欧美巨大另类极品videosbest | 亚洲精品国产精品乱码不99| 91在线视频播放地址| 《视频一区视频二区| aa级大片欧美| 一区二区三区四区不卡在线| 欧美熟乱第一页| 日韩中文字幕亚洲一区二区va在线| 4438x亚洲最大成人网| 乱中年女人伦av一区二区| 久久嫩草精品久久久精品| 高清国产午夜精品久久久久久| 国产欧美日产一区| a亚洲天堂av| 亚洲午夜影视影院在线观看| 91精品国产综合久久精品app| 日本成人中文字幕| 久久精品视频一区| 色一情一伦一子一伦一区| 亚洲一区二区成人在线观看| 欧美一区二区三区在线视频| 国产九色精品成人porny| 国产精品萝li| 欧美日韩国产小视频| 韩国女主播成人在线观看| 国产精品国产三级国产专播品爱网 | 日日噜噜夜夜狠狠视频欧美人| 日韩欧美国产一二三区| 国产成人小视频| 亚洲一区二区三区三| 欧美不卡一区二区三区| 白白色 亚洲乱淫| 亚洲第一在线综合网站| 久久这里只有精品首页| 91一区二区在线观看| 免费在线视频一区| 综合亚洲深深色噜噜狠狠网站| 9191国产精品| 成人在线视频首页| 日韩成人av影视| 国产精品久99| 日韩欧美的一区二区| 成人97人人超碰人人99| 免费成人av在线| 日韩毛片视频在线看| 日韩欧美中文字幕精品| 91麻豆swag| 国产美女精品在线| 亚洲777理论| 中文字幕精品三区| 91精品国产91久久久久久一区二区 | av网站一区二区三区| 另类欧美日韩国产在线| 一区二区三区影院| 国产午夜精品一区二区三区嫩草 | 欧美在线观看视频一区二区三区| 国产综合色在线视频区| 视频在线在亚洲| 夜夜爽夜夜爽精品视频| 欧美国产欧美亚州国产日韩mv天天看完整|