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

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

?? util_lcd.c

?? cc2430最新的例子程序
?? C
字號:
/***********************************************************************************
  Filename:     util_lcd.c

  Description:  Utility library for LCD control

***********************************************************************************/

/***********************************************************************************
* INCLUDES
*/
#include "hal_defs.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_lcd.h"
#include "hal_joystick.h"
#include "hal_button.h"

#include "util_lcd.h"
#include "hal_rf.h"
#include "string.h"
#include "stdlib.h"


/***********************************************************************************
* LOCAL VARIABLES
*/
// Logo
#if !defined(SRF04EB) && !defined(ASSY_EXP4618_CC2420)
static const char symbol1[8] = {0x03, 0x07, 0x0E, 0x0E, 0x1C, 0x19, 0x1B, 0x1B};
static const char symbol2[8] = {0x1B, 0x1B, 0x19, 0x1C, 0x0E, 0x0E, 0x07, 0x03};
static const char symbol3[8] = {0x18, 0x1E, 0x07, 0x03, 0x18, 0x1C, 0x06, 0x00};
static const char symbol4[8] = {0x00, 0x06, 0x1C, 0x18, 0x03, 0x07, 0x1E, 0x18};
#endif

const char ppBarGraphChar[8][8] = {
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F },
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F },
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F },
    { 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F },
    { 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
    { 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
    { 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
    { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F },
};

/***********************************************************************************
* GLOBAL FUNCTIONS
*/

#ifdef ASSY_EXP4618_CC2420
extern void halLcdWriteLine7Seg(const char *text);
#endif

#ifndef WIN32
/***********************************************************************************
* @fn          utilLcdMenuSelect
*
* @brief       Show a horisontally scrolled text menu on the LCD. Text lines given in
*               an array is shown in line 2 of the LCD, these lines are browsable.
*               The menu is navigated by using the joystick left and right, and press
*               S1 button to select an option. The function then returns the element number
*               in the given menu list that was chosen by the user.
*
* @param       ppMenu - pointer to list of texts to display for menu options
*              nMenuItems - number of menu options
*
* @return      uint8 - index to which of the menu items that was chosen
*/
uint8 utilMenuSelect(const menu_t* pMenu)
{
    uint8 index=0;
    uint8 updateLCD = TRUE;
    #ifdef SRF04EB
    char pLcdLine2[30] = "    ";
    #endif

    while (halButtonPushed()!=HAL_BUTTON_1) {
        // Joystick input: Reset = UP, Decr = LEFT, Incr = RIGHT
        if (halJoystickGetDir()==HAL_JOYSTICK_EVT_RIGHT) {
            index++;
            index %= pMenu->nItems;
            updateLCD = TRUE;
        } else if (halJoystickGetDir()==HAL_JOYSTICK_EVT_LEFT) {
            if(index == 0)
               index = pMenu->nItems-1;
            else
              index--;
            
            updateLCD = TRUE;
        }

        if(updateLCD) {
            // Display the updated value and arrows
            #ifdef SRF04EB
             // Make space for left arrow at left end of display
            strncpy(&(pLcdLine2[1]), (char*)pMenu->pMenuItems[index].szDescr, halLcdGetLineLength()-2);
            halLcdWriteLine(HAL_LCD_LINE_2, pLcdLine2);
            halLcdWriteChar(HAL_LCD_LINE_2, 0, '<');
            halLcdWriteChar(HAL_LCD_LINE_2, halLcdGetLineLength()-1, '>');
            #elif defined(ASSY_EXP4618_CC2420)
            halLcdWriteLine7Seg((char*)pMenu->pMenuItems[index].szDescr);
            #else
            halLcdWriteLine(HAL_LCD_LINE_2, (char*)pMenu->pMenuItems[index].szDescr);
            halLcdWriteChar(HAL_LCD_LINE_3, 0, '<');
            halLcdWriteChar(HAL_LCD_LINE_3, halLcdGetLineLength()-1, '>');
            #endif

            updateLCD = FALSE;
        }
        halMcuWaitMs(150);
    }
    halMcuWaitMs(150);

    return pMenu->pMenuItems[index].value;
}



/***********************************************************************************
* @fn          utilChipIdToStr
*
* @brief       Converts a chip ID to a text string.
*
* @param       uint8 chipID
*
* @return      none
*/
const char* utilChipIdToStr(uint8 chipID)
{
    const char* szId;

    switch(chipID) {
    case HAL_RF_CHIP_ID_CC2420:
        szId= "2420";
        break;
    case HAL_RF_CHIP_ID_CC2430:
        szId= "2430";
        break;
    case HAL_RF_CHIP_ID_CC2431:
        szId= "2431";
        break;
    case HAL_RF_CHIP_ID_CC2520:
        szId= "2520";
        break;
    case HAL_RF_CHIP_ID_CC2530:
        szId= "2530";
        break;
    case HAL_RF_CHIP_ID_CC2531:
        szId= "2531";
        break;
    default:
        szId= "";
    };

    return szId;
}

/***********************************************************************************
* @fn          utilPrintLogo
*
* @brief       Prints splash screen and logo
*
* @param       szAppName - String with name of application. Length of string must be
               no longer than (LCD_LINE_LENGTH - 5)
*
* @return      none
*/
void utilPrintLogo(char* szAppName)
{
    char lcdLine1[] = "   CCxxxx ( )";
    char lcdLine2[30]="   ";                    // Support up to 30 characters LCD line length
    uint8 lcdLineLength = halLcdGetLineLength();

    strncpy(&lcdLine1[5],utilChipIdToStr(halRfGetChipId()),4);
    lcdLine1[11] = (char)halRfGetChipVer() + '0';

    if( (strlen(szAppName)+strlen(lcdLine2)) <= lcdLineLength ) {
        strcat(lcdLine2, szAppName);
    }
    #ifdef SRF04EB
    halLcdWriteLine(HAL_LCD_LINE_1, lcdLine1);
    halLcdWriteLine(HAL_LCD_LINE_2, lcdLine2);

    #elif defined(ASSY_EXP4618_CC2420)
    halLcdWriteLine7Seg(lcdLine1+3);            // Only the chip name

    #else   // SRF05EB
    halLcdCreateSpecChar(0, symbol1);
    halLcdCreateSpecChar(1, symbol2);
    halLcdCreateSpecChar(2, symbol3);
    halLcdCreateSpecChar(3, symbol4);
    halLcdWriteLine(HAL_LCD_LINE_1, lcdLine1);
    halLcdWriteLine(HAL_LCD_LINE_2, lcdLine2);
    halLcdWriteLine(HAL_LCD_LINE_3, "   TI LPW");
    halLcdWriteSpecChar(HAL_LCD_LINE_1, 0, 0);
    halLcdWriteSpecChar(HAL_LCD_LINE_2, 0, 1);
    halLcdWriteSpecChar(HAL_LCD_LINE_1, 1, 2);
    halLcdWriteSpecChar(HAL_LCD_LINE_2, 1, 3);
    #endif
}

#endif

/***********************************************************************************
* @fn          utilPrintText
*
* @brief       Prints a text string across all lines of the display. Newlines
*              cause continuation on the next line.
*
* @param       pTxt - text to display
*
* @param       n - number of characters to print
*
* @return      0
*/
uint8 utilPrintText(uint8* pTxt, uint8 n)
{
    uint8 li[3];
    uint8  i, iLine, nChars, nLines;

    // Display properties
    nLines= halLcdGetNumLines();
    nChars= nLines*halLcdGetLineLength();

    // Split string on newlines
    i= 0;
    iLine= 0;
    li[0]= 0;
    li[1]= 0xff;
    li[2]= 0xff;

    while(i<n && i<nChars && iLine<nLines) {
        if (pTxt[i]=='\n') {
            iLine++;
            li[iLine]= i+1;
            pTxt[i]= '\0';
        }
        i++;
    }

    // Display
	for (iLine=0; iLine<nLines; iLine++) {
		if (li[iLine]!=0xFF)
			halLcdWriteLine(HAL_LCD_LINE_1+iLine, (char const*)pTxt + li[iLine] );
	}

    return 0;
}

/***********************************************************************************
* @fn         utilLoadBarGraph
*
* @brief      Load bar graph symbols on LCD. This function must be called before
*             utilLcdBarGraph can be used.
*
* @param      none
*
* @return     none
*/
void utilLoadBarGraph(void)
{
	uint8 n;

    // Load the bar graph characters
    for (n = 0; n < 8; n++) {
        halLcdCreateSpecChar(n, ppBarGraphChar[n]);
    }
}

/***********************************************************************************
* @fn         utilDisplayBarGraph
*
* @brief      Display bar graph on LCD
*
* @param      uint8 line - line number
*             uint8 col - column number
*             uint8 min - minimum value
*             uint8 value - value to display
*
* @return     int8 - sampled RSSI value
*/
void utilDisplayBarGraph(uint8 line, uint8 col, uint8 min, uint8 value)
{
    if (value <= min) {
        halLcdWriteChar(line, col, ' ');
    } else if (value >= min + 8) {
        halLcdWriteSpecChar(line, col, 7);
    } else {
        halLcdWriteSpecChar(line, col, value - min - 1);
    }
}


/***********************************************************************************
  Copyright 2007 Texas Instruments Incorporated. All rights reserved.

  IMPORTANT: Your use of this Software is limited to those specific rights
  granted under the terms of a software license agreement between the user
  who downloaded the software, his/her employer (which must be your employer)
  and Texas Instruments Incorporated (the "License").  You may not use this
  Software unless you agree to abide by the terms of the License. The License
  limits your use, and you acknowledge, that the Software may not be modified,
  copied or distributed unless embedded on a Texas Instruments microcontroller
  or used solely and exclusively in conjunction with a Texas Instruments radio
  frequency transceiver, which is integrated into your product.  Other than for
  the foregoing purpose, you may not use, reproduce, copy, prepare derivative
  works of, modify, distribute, perform, display or sell this Software and/or
  its documentation for any purpose.

  YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
  PROVIDED 揂S IS

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人你懂的| 欧美激情在线看| 图片区小说区区亚洲影院| 欧美亚洲动漫另类| 日韩精品一级中文字幕精品视频免费观看 | 国产人伦精品一区二区| 国产美女一区二区| 中文字幕一区在线| 欧美午夜精品电影| 毛片不卡一区二区| 久久久精品国产免费观看同学| 成人免费视频免费观看| 亚洲美腿欧美偷拍| 日韩精品中文字幕在线一区| 狠狠色狠狠色综合系列| 国产精品天天看| 欧美日免费三级在线| 美腿丝袜一区二区三区| 国产午夜精品久久久久久免费视| 99久久伊人精品| 偷拍一区二区三区四区| 久久久精品国产免大香伊| 99re这里只有精品视频首页| 亚洲成a人在线观看| 久久这里只有精品首页| 91色.com| 免费成人小视频| 亚洲欧美日韩国产综合| 日韩欧美一区二区视频| fc2成人免费人成在线观看播放| 亚洲国产精品尤物yw在线观看| www亚洲一区| 在线免费观看成人短视频| 精品影院一区二区久久久| 国产精品国产三级国产三级人妇| 7777精品伊人久久久大香线蕉完整版| 国产一区二区精品在线观看| 亚洲主播在线播放| 国产欧美一区二区精品性色| 欧美肥妇毛茸茸| 成人99免费视频| 美女看a上一区| 亚洲午夜羞羞片| 中文字幕一区二区三区在线观看| 7777精品伊人久久久大香线蕉最新版| 成人永久aaa| 久久精品国产亚洲高清剧情介绍| 亚洲人精品午夜| 国产片一区二区三区| 欧美精品xxxxbbbb| 91在线观看美女| 国产精品一二三四| 日韩高清欧美激情| 一区二区三区中文字幕电影| 国产欧美一区二区三区网站| 欧美mv日韩mv亚洲| 欧美猛男超大videosgay| 99久久婷婷国产综合精品电影| 国产一区视频在线看| 日本大胆欧美人术艺术动态| 亚洲综合精品自拍| 怡红院av一区二区三区| 日韩一区日韩二区| 国产精品女主播在线观看| 精品99一区二区| 91精品国产免费久久综合| 欧美在线观看一区二区| 91啪九色porn原创视频在线观看| 成人免费视频免费观看| 国产一区二区在线观看免费| 久色婷婷小香蕉久久| 日韩精品一级二级 | 国产一区二区三区久久久| 日本三级韩国三级欧美三级| 亚洲亚洲人成综合网络| 亚洲综合激情网| 亚洲国产乱码最新视频| 亚洲伊人伊色伊影伊综合网| 亚洲综合色成人| 午夜久久久久久电影| 日韩和欧美一区二区| 首页欧美精品中文字幕| 日韩二区三区在线观看| 日本欧洲一区二区| 国产在线播精品第三| 日韩电影免费在线| 精品一区二区免费| 国产精品18久久久| a在线欧美一区| 欧美午夜电影网| 91精品国产一区二区三区蜜臀| 3d动漫精品啪啪| 精品国产一区二区国模嫣然| 久久只精品国产| 一区二区中文字幕在线| 亚洲一线二线三线视频| 日韩精品国产精品| 国产一区亚洲一区| 91香蕉视频在线| 欧美日韩一区二区三区在线| 日韩一级黄色片| 久久精品视频一区二区三区| 中文字幕亚洲一区二区av在线| 一区二区高清免费观看影视大全 | 欧美一区二区日韩| 久久久亚洲精品一区二区三区| 国产精品无码永久免费888| 亚洲欧洲精品一区二区三区 | 一区二区三区在线免费观看 | 久久久久久久综合狠狠综合| 中文字幕亚洲成人| 日本一不卡视频| k8久久久一区二区三区 | 国产一区二区三区电影在线观看 | 久久久不卡影院| 一区二区三区色| 国产乱子伦视频一区二区三区| a4yy欧美一区二区三区| 91精品视频网| 久久影院午夜论| 色香蕉成人二区免费| 制服丝袜激情欧洲亚洲| 中文字幕 久热精品 视频在线| 亚洲国产精品一区二区久久恐怖片| 国产一区啦啦啦在线观看| 欧美亚洲国产一区在线观看网站| 精品国产凹凸成av人导航| 一区二区成人在线观看| 国产精品123| 欧美一区二区三区啪啪| 亚洲天堂免费在线观看视频| 看国产成人h片视频| 欧美日韩中字一区| 国产精品久久久99| 久久99国内精品| 欧美精品在线观看一区二区| 国产精品久久久久久久久快鸭 | 99精品视频在线观看免费| 欧美精品成人一区二区三区四区| 国产精品久久久久久久久免费丝袜 | 94-欧美-setu| 国产欧美精品区一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 一本一本大道香蕉久在线精品| 国产色婷婷亚洲99精品小说| 蜜桃av一区二区在线观看| 欧美日韩色一区| 一区二区欧美精品| 一本到三区不卡视频| 中文字幕av免费专区久久| 国产制服丝袜一区| 精品国产91亚洲一区二区三区婷婷| 亚洲成av人片一区二区| 欧美性极品少妇| 亚洲国产成人tv| 在线观看亚洲a| 一区二区三区在线播| 91色九色蝌蚪| 樱花草国产18久久久久| 91免费国产在线| 亚洲精品日韩专区silk| 色综合天天性综合| 亚洲日本护士毛茸茸| gogogo免费视频观看亚洲一| 国产精品高清亚洲| 99国产精品视频免费观看| 亚洲欧洲无码一区二区三区| 99在线精品观看| 亚洲人成在线观看一区二区| 99国产精品视频免费观看| 亚洲女人****多毛耸耸8| 91麻豆免费看| 一区二区三区加勒比av| 色94色欧美sute亚洲13| 亚洲电影视频在线| 在线电影院国产精品| 九九九久久久精品| 久久综合国产精品| 国产成人在线视频网站| 亚洲同性同志一二三专区| 91在线观看地址| 亚洲午夜影视影院在线观看| 在线电影一区二区三区| 黄色日韩三级电影| 国产精品视频看| 日本精品一区二区三区高清 | 国产精品素人视频| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区三区自拍| 欧美一区二区三区日韩视频| 久草中文综合在线| 一色屋精品亚洲香蕉网站| 91国在线观看| 久久国产精品99精品国产| 中文一区一区三区高中清不卡| 色悠悠久久综合| 精品一区二区三区久久| 1区2区3区国产精品| 欧美丰满高潮xxxx喷水动漫| 国产v综合v亚洲欧|