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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? io.c

?? TDK 6521 SOC 芯片 DEMO程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************
 * This code and information is provided "as is" without warranty of any   *
 * kind, either expressed or implied, including but not limited to the     *
 * implied warranties of merchantability and/or fitness for a particular   *
 * purpose.                                                                *
 *                                                                         *
 * Copyright (C) 2005 Teridian Semiconductor Corp. All Rights Reserved.	   *
 ***************************************************************************/
//**************************************************************************
//  DESCRIPTION: 71M651x POWER METER - IO Routines.
// 
//  AUTHOR:  MTF
//
//  HISTORY: See end of file
//**************************************************************************
// File: IO.C
//               
// IO subroutines for use by TEST and CLI.
//
#include "options.h"
#include <ctype.h>
#include "cli.h"
#include "wd.h"
#include "io.h"
#include "library.h"
#include "main.h"
#include "sercli.h"
#include "ser0cli.h"
#include "ser1cli.h"
#include "serial.h"
#include "stm.h"
#include <ctype.h>

/*** Public variables declared within this module ***/
bool echo = 1;
#if CLI
#define TXBUFF_SIZE 128
uint8x_t txbuffer[ TXBUFF_SIZE ];
uint16x_t txlen;
bool io_timeout;  // the flag read by high level protocols

/*** Private functions declared within this module ***/
//

/*** Private variables used within this module ***/
#define CLI_BUFF_SIZE 128         // 128 byte CLI buffer, no wrap;
static uint8x_t cli_buff[ CLI_BUFF_SIZE ];
static uint8r_t v_crlf[] = { CRET, LF, NULL };

// Convert ascii decimal (or hex) short to binary number.
// Used by flash commands, and the 6510's CLI commands to read the CE code space
#if FLASH || (TRACE10 && CLI)
int16_t get_short (void)              
{
    return ((int16_t) get_long ());
}
#endif

#if EXTRAS
// Convert ascii decimal short to binary number.
int16_t get_short_decimal (void)              
{
    return ((int16_t) get_long_decimal ('+'));
}
#endif

#if EXTRAS
// Convert ascii hexdecimal short to binary number.
uint16_t get_short_hex (void)              
{
    return ((uint16_t) get_long_hex ());
}
#endif

// Convert ascii decimal (or hex) number to binary number.
int8_t get_num (void)              
{
    return ((int8_t) get_long ());
}

// Convert ascii decimal number to binary number.
int8_t get_num_decimal (void)              
{
    return ((int8_t) get_long_decimal ('+'));
}

#if EXTRAS
// Convert ascii hexdecimal byte to binary number.
uint8_t get_num_hex (void)
{
    return ((uint8_t) get_long_hex ());
}
#endif

// Convert ascii decimal (or hex) long to binary number.
int32_t get_long (void)              
{
    uint8_t idata c, d;

    c = get_char_d (&d);

    if ('+' == c || '-' == c)
       return (get_long_decimal (c));
    else
    {
       cli_index = d;                   // Unget last character.       
       return ((int32_t) get_long_hex ());  // Default to hexadecimal input.
    }
}

int32_t get_long_decimal (uint8_t c)
{
    bool sign;
    uint8_t idata d, i;
    int32_t xdata n;

    i = 10;                             // Maximum number of digits allowed for decimal input.
    n = 0;                              // Number to be returned.

    sign = '-' == c;

    while (i > 0 && (c = get_digit (&d)) < 10)   
    {                                   // Convert ASCII decimal number to binary number.
       n = (n * 10) + c;
       i--;
    }

    if (sign)
       n = -n;

    if (i) cli_index = d;               // Unget last character, it wasn't a digit.

    return (n);
}

uint32_t get_long_hex (void)                 // Convert ASCII hexadecimal number to binary number.
{                             
    uint8_t idata c, d, i;
    uint32_t xdata n;

    i = 8;                              // Maximum number of digits allowed for hex input.
    n = 0;                              // Number to be returned.
    while (i > 0 && (c = get_digit (&d)) < 0x10) 
    {                                   // Convert ASCII hexadecimal number to binary number.
       n = (n << 4) + c;
       --i;
    }

    if (i) cli_index = d;               // Unget last character, it wasn't a digit.
    return (n);
}

// Get next decimal (or hex) digit from CLI buffer.
uint8_t get_digit (uint8_t idata *d)                 
{
    uint8_t idata c;

    if (isxdigit (c = get_char_d (d)))
    {
       c -= '0';                        // '0' mapped to  0;

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

    return (c);
}

uint8_t get_char_d (uint8_t idata *d)                // Get next character from CLI buffer..   
{                                       // ..and allow unget.
    *d = cli_index;
    return (get_char ());
}

uint8_t get_char (void)                     // Get next character from CLI buffer. 
{
    uint8_t idata c;

    c = cli_buff[ cli_index ];
    if (c == '/')  // the "comment" function simulates an end of line
       c = '\0';
    if (c != '\0')
       cli_index++; 

    return (c);
}

void send_crlf (void)                   // Send <CR><LF> to UART.
{
    start_tx_rslt (v_crlf);
}

void start_tx_rslt (uint8r_t *ptr)          // Send ROM string out PC UART.
{
    txlen = strlen_r (ptr);    
    memcpy_xr (txbuffer, ptr, txlen);
    Serial_Tx (port, txbuffer, txlen);
}

#if EXTRAS
void start_tx_ram (uint8x_t *ptr)           // Send RAM string out PC UART.
{
    txlen = strlen_x (ptr);    
    memcpy_xx (txbuffer, ptr, txlen);
    Serial_Tx (port, txbuffer, txlen);
}
#endif

void send_long (int32_t n)                  // Send a [0, 9,999,999,999] value to DTE.
{
    send_num (n, 10);
    send_char (SPACE);
}

#if TRACE10
void send_short (int16_t n)                 // Send a [0, 99,999] value to DTE.
{
    send_num ((int32_t) n, 5);
    send_char (SPACE);
}
#endif

void send_byte (int8_t n)                  // Send a [0, 255] value to DTE.
{
    send_num ((int32_t) n, 3);
    send_char (SPACE);
}

void send_num (int32_t n, uint8_t size)
{
    uint8_t idata i;
    uint8_t xdata d[10];
    bool non_zero = FALSE;

    if (n < 0)
    {
       send_char ('-');
       n = -n;
    }

    for (i = 0; i < size; i++)          // Compute digits in reverse order..LSD to MSD.
    {
       d[ size - 1 - i ] = n % 10;
       n /= 10;
    }

    for (i = 0; i < size; i++)          // Send in digits in proper order..MSD to LSD.
    {
       if (non_zero || d[ i ] || (i == size - 1))
       {
          send_digit (d[ i ]);
          non_zero = TRUE;
       }
    }
}

void send_long_hex (uint32_t i)
{
    send_hex ((uint8_t) (i >> 24));
    send_hex ((uint8_t) (i >> 16));
    send_hex ((uint8_t) (i >> 8));
    send_hex ((uint8_t) (i));
    send_char (SPACE);
}

#if TRACE10
void send_short_hex (uint16_t i)
{
    send_hex ((uint8_t) (i >> 8));
    send_hex ((uint8_t) (i));
    send_char (SPACE);
}
#endif

void send_byte_hex (uint8_t c)
{
    send_hex (c);
    send_char (SPACE);
}

void send_hex (uint8_t c)
{
    send_digit (c >> 4);
    send_digit (c & 0x0F);
}

void send_digit (uint8_t c)                 // Send single ASCII hex or decimal digit to DTE.
{
    send_char (htoc (c));
}

void send_char (uint8_t c)
{
    uint8_t xdata cd;

    cd = c;
    Serial_Tx (port, &cd, 1);
}

#define CMD_BUFF_SIZE 16

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠av一区二区三区| 久久综合九色综合97婷婷| 欧美电影一区二区| 久久久久综合网| 亚洲精品国产第一综合99久久 | 欧美视频一区二区三区四区| 精品国产一二三| 亚洲视频综合在线| 精品综合免费视频观看| 欧美日韩一级片网站| 国产精品国产三级国产aⅴ原创| 五月婷婷综合网| 91亚洲永久精品| 久久久久99精品国产片| 青青草97国产精品免费观看 | 欧美电影精品一区二区 | 精品捆绑美女sm三区| 亚洲国产精品久久久久秋霞影院| 国产黄色精品视频| 日韩欧美另类在线| 免费成人小视频| 欧美久久久久久蜜桃| 樱桃国产成人精品视频| 大陆成人av片| 国产清纯白嫩初高生在线观看91| 美女一区二区三区在线观看| 欧美一区二区视频在线观看| 色av一区二区| 丝袜美腿成人在线| 日韩国产高清影视| 国产日韩欧美精品一区| 欧美日韩一区二区欧美激情| 东方aⅴ免费观看久久av| 日韩精彩视频在线观看| 亚洲精品欧美在线| 亚洲成人av中文| 日韩一区欧美一区| 亚洲成人av一区| 免费久久99精品国产| 欧美美女一区二区| 日韩av午夜在线观看| 制服视频三区第一页精品| 视频在线观看国产精品| 91精品久久久久久蜜臀| 日本伊人精品一区二区三区观看方式 | 欧美视频一区二| 亚洲图片欧美色图| 91精品国产免费久久综合| 水野朝阳av一区二区三区| 日韩一区二区在线看| 毛片一区二区三区| 国产亚洲va综合人人澡精品| 国产成人av一区二区| 亚洲色大成网站www久久九九| 色欲综合视频天天天| 亚洲aⅴ怡春院| 精品日韩av一区二区| 丁香婷婷综合色啪| 亚洲一区二区三区中文字幕 | 99久久精品费精品国产一区二区| 国产精品成人一区二区艾草 | 亚洲成a人v欧美综合天堂| 日韩美女视频一区二区在线观看| 久久精品国产亚洲一区二区三区| 一区二区三区欧美日| 欧美人成免费网站| 国产成人亚洲精品狼色在线| 亚洲青青青在线视频| 777色狠狠一区二区三区| 国产一区二区三区四区五区美女 | 美女性感视频久久| 国产精品青草综合久久久久99| 成人18视频日本| 午夜精品一区二区三区免费视频| 久久影院午夜片一区| 日本国产一区二区| 国内精品嫩模私拍在线| 欧美性大战久久久久久久蜜臀| 欧美偷拍一区二区| 高清国产一区二区| 精品免费国产一区二区三区四区| 亚洲乱码国产乱码精品精小说| 激情综合色综合久久| 欧美日韩小视频| 亚洲妇女屁股眼交7| 91在线精品一区二区三区| 中文乱码免费一区二区| 国产成人精品午夜视频免费| 自拍偷拍国产精品| 日韩高清不卡一区二区三区| 久久久久久黄色| 欧美日韩国产片| voyeur盗摄精品| 老司机午夜精品| 一区二区三区不卡视频在线观看| 精品乱人伦一区二区三区| 欧美日韩在线播放一区| 成人黄色小视频| 国产一区欧美一区| 日产国产欧美视频一区精品| 九色综合国产一区二区三区| 亚洲最色的网站| 中文字幕一区二区三区四区不卡 | 日韩中文字幕麻豆| 亚洲精品视频在线观看免费| 国产欧美视频一区二区三区| 欧美一区二区三区婷婷月色 | 国产.精品.日韩.另类.中文.在线.播放| 亚洲第一激情av| 亚洲欧美日韩一区| 最新热久久免费视频| 国产精品私房写真福利视频| 久久久久久久久久看片| 欧美成人免费网站| 日韩午夜精品电影| 欧美一区二区三区四区高清| 欧美日韩美女一区二区| 在线国产亚洲欧美| 在线免费视频一区二区| 91浏览器在线视频| 色婷婷亚洲精品| 欧美亚洲愉拍一区二区| 欧美亚洲国产一区二区三区va| 色视频一区二区| 欧亚一区二区三区| 欧美日韩一区二区不卡| 在线不卡的av| 日韩免费视频一区二区| xnxx国产精品| 国产亚洲自拍一区| 国产精品私人影院| 亚洲欧美国产77777| 亚洲电影一区二区三区| 日本视频一区二区| 国产原创一区二区三区| 国产毛片精品视频| 99精品在线观看视频| 色哟哟国产精品| 亚洲欧美综合在线精品| 久久九九国产精品| 精品无人区卡一卡二卡三乱码免费卡 | 日韩电影一区二区三区四区| 中文字幕日本不卡| 国产亚洲综合在线| 久久久久久夜精品精品免费| 久久蜜桃香蕉精品一区二区三区| 国产欧美综合色| 欧美韩日一区二区三区| 国产亚洲欧美中文| 色8久久人人97超碰香蕉987| 欧美另类久久久品| 2020国产精品自拍| 一区二区三区中文免费| 三级久久三级久久| 国产精品中文有码| 日本高清不卡aⅴ免费网站| 日韩一区二区免费高清| 国产精品久久久久影院老司 | 91.麻豆视频| 久久久久99精品一区| 亚洲一区在线播放| 国产激情一区二区三区四区| 91豆麻精品91久久久久久| 欧美va在线播放| 亚洲一区二区三区影院| 国产精品白丝jk白祙喷水网站| 色婷婷综合久久久中文一区二区| 91精品免费在线观看| 亚洲色图.com| 激情综合色综合久久综合| 欧美婷婷六月丁香综合色| 国产午夜亚洲精品不卡| 日本免费在线视频不卡一不卡二| 国产激情精品久久久第一区二区| 欧美精品三级在线观看| 亚洲视频精选在线| 国产精品18久久久| 日韩视频一区二区三区在线播放| 亚洲人成亚洲人成在线观看图片| 韩国av一区二区三区| 884aa四虎影成人精品一区| 17c精品麻豆一区二区免费| 国产一区二区精品久久91| 这里只有精品电影| 亚洲一区二区三区国产| 99久久免费国产| 国产精品久久福利| 国产精品亚洲专一区二区三区 | 精品久久久久久久久久久久久久久 | 亚洲一区二区精品久久av| 顶级嫩模精品视频在线看| 2017欧美狠狠色| 久久99国产精品麻豆| 欧美军同video69gay| 亚洲一区视频在线| 日韩亚洲欧美中文三级| 亚洲电影你懂得| 国产精品久久久久久妇女6080| 一区二区激情视频| 亚洲精品在线一区二区|