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

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

?? io.c

?? TDK 6521 SOC 芯片 DEMO程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
bool cmd_pending (void)
{
    static uint8_t xdata len = 0;
    static uint8_t xdata cb[ CMD_BUFF_SIZE + 2 ];       // Leave room for a couple of LineFeeds.
    static uint8_t xdata * idata cp = cb;
	bool Ok;

    uint8_t idata c, i;

    if (!len)
    {
       if (!(len = Serial_CRx (port, cb, CMD_BUFF_SIZE)))
          return (Ok = FALSE);

       if (echo)
       {
          cp = cb;
          c = len;

          for (i = 0; i < c; i++)
          {
             if (CRET == *cp || LF == *cp)
             {                                   
                *cp++ = CRET;           // Insert <CR>.
                memcpy_xx (cp + 1, cp, len - i - 1);
                *cp = LF;            // Insert <LF>.
                len++;             
             }

             cp++;
          }      

          Serial_Tx (port, cb, len);       
       }
       cp = cb;
    }

    while (len)
    {                                   // Got some bytes.
       len--;
       c = *cp++;

       if (c >= ' ' )
       {
          if ((CLI_BASE == cli_index) && (',' == c))
          {
             while (cli_buff[ cli_index ] && cli_index < CLI_BUFF_SIZE)
                cli_index++;            // Find end of command.
          
             if (cli_index < CLI_BUFF_SIZE)
             {                          // Found old command.
                Serial_Tx (port, cli_buff, cli_index);       
                send_crlf ();
             }
             else
                *cli_buff = '\0';       // Null command, just echo prompt.

             cli_index   = CLI_BASE;    // Reset index to begining of command buffer.

             return (Ok = TRUE);
          }
          else
             put_char (&c);             // Just save it.
       }

       if ((CRET == c) || (LF == c))        
       {                                // Carriage Return or LineFeed.
          cli_buff[ cli_index ] = '\0'; // Stuff command terminator into buff.

          if (!echo)
          {
             Serial_Tx (port, cli_buff, cli_index);       
             send_crlf ();
          }
          else if (echo)
          {
             cp++;                      // Skip inserted CRET or LF.
             len--;
          }

          cli_index   = CLI_BASE;       // Reset index to begining of command buffer.
          return (Ok = TRUE);
       }
       else if (BS == c)
       {                                // Backspace.
          if (CLI_BASE != cli_index)
             cli_index--;
       }
       else if (CTRL_X == c)
          cli_index = CLI_BASE;         // Cancel, reset index CLI_BASE.
    }

    return (Ok = FALSE);
}

void put_char (uint8_t idata *c)
{
    if (cli_index < CLI_BUFF_SIZE - 1)
       cli_buff[ cli_index++ ] = *c;    // Just save it.
    else
       *c = CRET;                       // Force termination.
}

uint8_t htoc (uint8_t c)
{
    if (c > 9)
       c += 'A' - 10;
    else
       c += '0';
    
    return (c);
}

#pragma save
#pragma NOAREGS
static void io_timer(void) small reentrant
{
    io_timeout = 1;
}
#pragma restore

// character input
uint8_t getc (void)
{
    uint8_t xdata b;
    uint16_t len;
    uint16x_t *pstm;

    pstm = stm_start(milliseconds(30000),0,io_timer);

    do
    {
        len = Serial_CRx (port, &b, 1);
        if (!len)
           main_background ();
        if (io_timeout)
            return 0;
    }
    while (len == 0);

    stm_stop(pstm);
    io_timeout = 0;

    return b;
}

// Get next hexadecimal digit.
#undef CASE_
#define CASE_   0x20
static uint8_t rcv_digit (void)                     
{
    uint8_t c;

    do {
        c = getc ();
        if (io_timeout)
            return 0;
    } while (!isxdigit(c));

    c -= '0';              // '0' mapped to  0;

    if (c >= 10)
    {
        c &= ~CASE_;
        c -= 'A' - '0' - 10;            // 'A' mapped to 10.
    }

    return (c);
}

uint8_t rcv_hex (void)    // Convert ascii hexdecimal byte to binary 
{
    return ((rcv_digit () << 4) | rcv_digit ());
}

/***************************************************************************
 * History:
 * $Log: io.c,v $
 * Revision 1.29  2006/10/13 00:46:20  tvander
 * Removed compile options for 6530, 6515; renamed 6511 and 6513 to trace11 and trace13; Binary verified unchanged from previous version.
 *
 * Revision 1.28  2006/09/09 01:08:23  gmikef
 * *** empty log message ***
 *
 * Revision 1.27  2006/07/31 18:02:41  tvander
 * Fixed CLC timeout logic's integration with the CLI
 *
 * Revision 1.26  2006/07/25 17:21:11  tvander
 * Added io_timeout boolean.
 *
 * Revision 1.25  2006/07/25 00:26:34  tvander
 * *** empty log message ***
 *
 * Revision 1.24  2006/06/24 05:27:04  tvander
 * Clean build
 *
 * Revision 1.23  2006/06/23 20:46:04  tvander
 * Removed wait-for-io; it slowed response in brownout mode, and caused
 * hangs. The cure was definitely worse than the disease: a few clobbered characters after certain commands.
 *
 * Revision 1.22  2006/06/20 20:38:03  tvander
 * Fixed hang in wait for data to be sent.
 *
 * Revision 1.21  2006/06/15 19:56:04  tvander
 * Fixed misc. serial errors.
 *
 * Revision 1.20  2006/06/06 03:53:51  tvander
 * Added calibration count to access.c
 * Added to help files, at least, they compile for a 6513.
 * io.c support the calibration loader.
 * ser0cli.c and ser1cli.c were allocating too many timers.  Fixed.
 *
 * Revision 1.19  2006/05/30 17:16:19  tvander
 * Integrated new code to support the calibration loader
 *
 * Revision 1.18  2006/05/25 03:25:58  tvander
 * Some untested adjustments for calibration loader.
 * Added automatic enabling of UART2 and switching to pulse output on DIO2
 *
 * Revision 1.17  2006/04/06 20:57:10  tvander
 * I command is the same as I0 now.
 *
 * Revision 1.16  2006/03/07 23:57:08  tvander
 * Revised help system for accuracy.
 * Revised help system for compile flags.
 * Clean build
 *
 * Revision 1.15  2006/03/06 03:28:33  Michael T. Fischer
 * More 6530 prep.
 *
 * Revision 1.14  2006/03/03 11:24:47  Michael T. Fischer
 * Prep for 6530 LCD, etc.
 *
 * Revision 1.13  2006/01/16 20:11:20  tvander
 * Clean Keil build, all versions
 *
 * Revision 1.12  2006/01/10 03:54:33  gmikef
 * Added PDATA support for CE Outputs.
 *
 * Revision 1.10  2005/12/21 01:23:12  tvander
 * 13 and 11 are different. apparently
 *
 * Revision 1.9  2005/11/10 22:51:31  tvander
 * 6520 has battery mode commands.
 * Brownout always has decimal point 7.
 * LCD Mode always has decimal points 7 and 6.
 * Sag detection is disabled.
 *
 * Revision 1.8  2005/11/05 02:23:26  gmikef
 * Fixed bug in XON/XOFF protocol.
 * Detect and notify of out of range download data.
 *
 * Revision 1.7  2005/11/02 03:06:46  gmikef
 * Xon/Xoff flow control working.
 *
 * Revision 1.6  2005/10/18 02:17:08  tvander
 * Access CLI in brownout by pressing reset.
 * Debugged serial 1 usage from CLI.
 * Implemented scrolling display as M17
 *
 * Revision 1.5  2005/10/08 04:41:17  tvander
 * Fixed priority inversion.
 * Rewrote watchdog to work in brownout, but of course it doesn't work.
 * Watchdog can now be defeated by clearing watchdog option to 0.
 * Reorganized watt hour modules (at last!).
 * Disabled reading of STATUS in 6521_cli because the CE's status is always SAG.
 * Tested with 6521_CLI; measurements seem to work.
 * Fixed other builds.
 *
 * Revision 1.4  2005/09/22 23:44:54  tvander
 * Clean build all models and unit tests, updated copyright to be fore Teridian
 *
 * Revision 1.3  2005/09/12 07:47:28  tvander
 * Power measurement is stable, with no creep.
 * VARh measurement is stable, with no creep.
 * Pulse sources work.
 * Full access to MPU variables.
 * Rolled date.
 * Clock software works.
 *
 * Revision 1.2  2005/08/30 01:56:50  gmikef
 * *** empty log message ***
 *
 * Revision 1.1  2005/08/28 02:23:57  gmikef
 * *** empty log message ***
 *
 * Revision 1.3  2005/08/20 01:32:44  gmikef
 * *** empty log message ***
 *
 * Revision 1.2  2005/08/19 01:04:37  gmikef
 * *** empty log message ***
 *
 * Revision 1.1  2005/08/18 02:56:07  gmikef
 * *** empty log message ***
 *
 *

 * 2005 AUGUST 17; First Version. 
 * Copyright (C) 2005 Teridian Semiconductor Corp. All Rights Reserved.	   *
 * this program is fully protected by the United States copyright          *
 * laws and is the property of Teridian Semiconductor Corporation.         *
 ***************************************************************************/
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区在线| 91精品国产综合久久久蜜臀图片| 亚洲成人一区在线| 国产精品久久久久久久蜜臀| 日韩精品中文字幕一区| 91精品国产高清一区二区三区| 一本一本大道香蕉久在线精品 | 精品少妇一区二区三区| 51精品久久久久久久蜜臀| 欧美在线观看视频一区二区| 91蜜桃网址入口| 国产成人精品影视| av午夜一区麻豆| 99精品视频在线免费观看| 99re亚洲国产精品| 日本韩国欧美国产| 在线播放日韩导航| 精品日韩一区二区| 久久精品亚洲一区二区三区浴池| 久久午夜电影网| 国产精品理论片| 一区二区理论电影在线观看| 视频一区欧美日韩| 国产麻豆欧美日韩一区| 国产成人免费xxxxxxxx| 99re热这里只有精品视频| 在线看一区二区| 欧美一区二区久久久| 久久精品亚洲精品国产欧美kt∨ | 亚洲自拍偷拍欧美| 日韩国产在线观看| 欧美日韩视频一区二区| 午夜日韩在线观看| 精品亚洲免费视频| 国产在线精品一区在线观看麻豆| 国产成人精品亚洲午夜麻豆| 欧美影院一区二区| 久久久久99精品一区| 亚洲精品老司机| 国产专区欧美精品| 91高清视频在线| 久久综合九色综合97婷婷女人| 综合久久综合久久| 国产一区在线精品| 欧美日韩国产小视频| 中文在线一区二区| 日本v片在线高清不卡在线观看| 国产精品正在播放| 欧美一区二区三区精品| 亚洲欧洲精品天堂一级| 玖玖九九国产精品| 91色.com| 中文字幕av一区 二区| 麻豆高清免费国产一区| 99久久国产综合精品女不卡| 精品久久久影院| 一区二区三区欧美久久| 国产成人精品综合在线观看 | 欧美变态口味重另类| 国产精品国产三级国产aⅴ中文| 美腿丝袜亚洲三区| 欧美三级一区二区| 亚洲人成网站在线| 国产成人精品影院| wwwwxxxxx欧美| 首页欧美精品中文字幕| 欧美午夜电影网| 亚洲欧美电影一区二区| 成人午夜在线播放| 久久亚洲精品小早川怜子| 久久69国产一区二区蜜臀| 欧美肥妇毛茸茸| 日日欢夜夜爽一区| 精品婷婷伊人一区三区三| 亚洲免费av观看| 91网站最新地址| 国产精品久久久久久久久免费樱桃| 久久国产剧场电影| 欧美成人伊人久久综合网| 日韩一区欧美二区| 91精品欧美综合在线观看最新| 亚洲福利国产精品| 欧美一区二区女人| 日韩不卡一区二区三区| 69堂精品视频| 免费在线观看日韩欧美| 欧美成人精品1314www| 久草精品在线观看| 久久综合五月天婷婷伊人| 极品少妇xxxx偷拍精品少妇| 精品国产91亚洲一区二区三区婷婷| 久久精品国产精品亚洲综合| 日韩精品专区在线影院重磅| 国产精品91xxx| 亚洲特黄一级片| 欧美三级视频在线观看| 蜜桃精品视频在线| 国产女人水真多18毛片18精品视频| 成人综合婷婷国产精品久久| 国产精品国产三级国产| 欧美日韩精品电影| 国产在线精品视频| 一区在线观看免费| 欧美在线啊v一区| 麻豆精品一区二区av白丝在线 | 丰满放荡岳乱妇91ww| 国产精品传媒视频| 欧美日韩国产综合草草| 激情伊人五月天久久综合| 中文字幕国产精品一区二区| 一本到不卡免费一区二区| 美女一区二区视频| 中文字幕中文字幕在线一区| 欧美男男青年gay1069videost| 国产福利精品导航| 亚洲va欧美va天堂v国产综合| 国产亚洲一本大道中文在线| 在线亚洲一区观看| 国产一区二区三区不卡在线观看| 亚洲另类春色校园小说| 日韩欧美一二三| 91丨porny丨国产入口| 日韩电影在线观看网站| 国产精品美女久久久久aⅴ国产馆| 欧美日韩亚洲综合一区二区三区| 国产成人一区在线| 午夜激情一区二区| 国产精品福利电影一区二区三区四区| 欧美日韩一区二区三区视频| 风间由美中文字幕在线看视频国产欧美| 亚洲国产日韩a在线播放 | 日本道色综合久久| 美国毛片一区二区| 亚洲美女屁股眼交| 久久久久久影视| 91麻豆精品国产91久久久资源速度| 国产成人在线视频网站| 舔着乳尖日韩一区| 一个色综合网站| 国产精品久久久久久亚洲伦| 精品国产乱码久久| 欧美一区二区三区思思人| 在线观看91精品国产入口| 成人小视频在线观看| 国产真实乱对白精彩久久| 亚洲二区在线观看| 亚洲综合在线视频| 亚洲免费看黄网站| 国产精品久久99| 中文字幕在线一区二区三区| 国产日韩欧美精品一区| 久久久久国产精品厨房| 久久影院午夜论| 欧美成人aa大片| 日韩欧美视频一区| 欧美精品v国产精品v日韩精品| 欧美综合在线视频| 欧美日韩一区精品| 欧美高清性hdvideosex| 欧美美女网站色| 欧美三级蜜桃2在线观看| 欧美综合天天夜夜久久| 欧美在线免费观看亚洲| 欧美日韩三级一区二区| 欧美一区二区日韩一区二区| 欧美白人最猛性xxxxx69交| 精品区一区二区| 国产亚洲成年网址在线观看| 国产精品久线在线观看| 亚洲男人的天堂在线观看| 亚洲免费观看高清完整版在线| 一区二区三区视频在线看| 亚洲制服丝袜av| 午夜a成v人精品| 久久成人精品无人区| 丰满少妇在线播放bd日韩电影| 成人国产免费视频| 色综合天天综合网天天看片| 欧美日韩一二三区| 久久精品亚洲精品国产欧美kt∨| 国产色产综合色产在线视频| 中文字幕中文在线不卡住| 亚洲午夜一区二区| 韩国av一区二区| 在线区一区二视频| 日韩欧美一二区| 成人欧美一区二区三区黑人麻豆 | 777xxx欧美| 久久久久久久久久久久电影| 亚洲欧美激情插| 久久精品国产亚洲高清剧情介绍| 国产91富婆露脸刺激对白| 在线中文字幕一区| 久久久久久久免费视频了| 亚洲高清免费视频| 国产资源精品在线观看| 欧美日韩一级大片网址| 国产精品久久毛片| 蜜臂av日日欢夜夜爽一区| 99国产精品一区|