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

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

?? library.c

?? TDK 6521 SOC 芯片 DEMO程序
?? C
字號:
/***************************************************************************
 * 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: 71M652x POWER METER - Library Routines.
//
//  AUTHOR:  MTF
//
//  HISTORY: See end of file.
//**************************************************************************
// File: LIBRARY.C
//
#include "options.h"
#include "library.h" // public functions declared in this module

/*** External functions used within this module ***/
// None.

/*** External variables used within this module ***/
// None.

/*** Public functions declared within this module ***/
// See in library.h

/*** Public variables declared within this module ***/
// None.

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

/*** Private variables declared within this module ***/
// None.

#pragma save
#pragma NOAREGS
void memset_x (uint8x_t *dst, uint8_t s, uint16_t len) small reentrant
{
    while (len--)
       *dst++ = s;
}
#pragma restore

#pragma save
#pragma NOAREGS
void memcpy_xx (uint8x_t *dst, uint8x_t *src, uint16_t len) small reentrant
{                                       // Handles overlapped data.
    if ((dst < src) || ((src + len - 1) < dst))
    {                                   // Copy from beginning of buffers.
       --dst;   --src;
       while (len--)
          *(++dst) = *(++src);
    }
    else
    {
       src += len;                      // Copy from end of buffers.
       dst += len;
       while (len--)
          *(--dst) = *(--src);
     }
}
#pragma restore

#pragma save
#pragma NOAREGS
void memcpy_xr (uint8x_t *dst, uint8r_t *src, uint16_t len) small reentrant
{                                       // Copy CE_CODE image to RAM.
    while (len--)
       *dst++ = *src++;
}
#pragma restore

#if (EQUATION != _1ELEMENT_3WIRE) && (POWER_FACTOR || WATT_SUMS || VAR_SUMS || VA_SUMS || AUTOCAL)
#pragma save
#pragma NOAREGS
void memcpy_px (uint8p_t *dst, uint8x_t *src, uint8_t len) small reentrant
{
    while (len--)
       *dst++ = *src++;
}
#pragma restore
#endif // VA_ELEMENT/VA_SUMS/MATH_FAST.

#pragma save
#pragma NOAREGS
void memcpy_xp (uint8x_t *dst, uint8p_t *src, uint8_t len) small reentrant
{
    while (len--)
       *dst++ = *src++;
}
#pragma restore

#if FLASH || (CAL_SAVE && (NV_SELECT == NV_FLASH))
#pragma save
#pragma NOAREGS
int8_t memcmp_rx (uint8r_t *rsrc, uint8x_t *xsrc, uint16_t len) small reentrant
{
    while (len--)
    {                                   // while not a do-while, to handle len = 0 input.
       if (*rsrc != *xsrc) break;

       rsrc++;  xsrc++;
    }

    if (len + 1)                        // len is -1 is buffers matched.
    {
       if (*rsrc > *xsrc)
          return (1);
       else
          return (-1);
    }
    else
       return (0);
}
#pragma restore
#endif // FLASH.

#if EXTRAS  || ROM
#pragma save
#pragma NOAREGS
int8_t memcmp_xx (uint8x_t *xsrc1, uint8x_t *xsrc2, uint16_t len) small reentrant
{
    while (len--)                       // while not a do-while, to handle len = 0 input.
    {
       if (*xsrc1 != *xsrc2) break;

       xsrc1++;  xsrc2++;
    }

    if (len + 1)                        // len is -1 if buffers matched.
    {
       if (*xsrc1 > *xsrc2)
          return (1);
       else
          return (-1);
    }
    else
       return (0);
}
#pragma restore
#endif // EXTRAS.

#if 0
#if VA_ELEMENT || VA_SUMS   || RMS_VALUES || CALIBRATION
#pragma save
#pragma NOAREGS
int8_t memcmp_px (uint8p_t *psrc, uint8x_t *xsrc, uint16_t len) small reentrant
{
    while (len--)                       // while not a do-while, to handle len = 0 input.
    {
       if (*psrc != *xsrc) break;

       psrc++;  xsrc++;
    }

    if (len + 1)                        // len is -1 if buffers matched.
    {
       if (*psrc > *xsrc)
          return (1);
       else
          return (-1);
    }
    else
       return (0);
}
#pragma restore
#endif // VA_ELEMENT/VA_SUMS/RMS_VALUES.
#endif

#if EXTRAS
#pragma save
#pragma NOAREGS
uint16_t strlen_x (uint8x_t *src) small reentrant
{
    uint16_t l = 1;

    while (*src++ && l)
       l++;

    return (l - 1);
}
#pragma restore
#endif

#if CLI
#pragma save
#pragma NOAREGS
uint16_t strlen_r (uint8r_t *src) small reentrant
{
    uint16_t l = 1;

    while (*src++ && l)
       l++;

    return (l - 1);
}
#pragma restore
#endif

#pragma save
#pragma NOAREGS
// this is a small reentrant in case it is called as part of the error
// recording in a sag
bool LRC_Calc_NVR (uint8x_t *ptr, uint16_t len, uint8_t set) small reentrant
{
    uint8_t LRC;

    if (set)
        --len;                          // Do not include LRC is calculation.

    LRC = 0x55;
    for(; len != 0; --len)
    {
        LRC ^= *ptr++;
    }

    if (set)
    {
        *ptr = LRC;             // Store complement of LRC.
        LRC ^= *ptr;
    }

    return (LRC == 0);
}
#pragma restore

/***************************************************************************
 * History                                                                 *
 * $Log: library.c,v $
 * Revision 1.28  2006/09/10 00:30:14  Michael T. Fischer
 * First version to support DGM0915 LCD.
 *
 * Revision 1.27  2006/09/09 01:15:23  gmikef
 * *** empty log message ***
 *
 * Revision 1.26  2006/09/06 02:27:05  tvander
 * Clean build
 *
 * Revision 1.25  2006/06/29 00:58:44  tvander
 * Added NOAREGs to reentrant code.
 *
 * Revision 1.24  2006/06/14 02:47:45  tvander
 * memset_x is reentrant, originally for reentrant clear of LCD display.
 *
 * Revision 1.23  2006/06/06 05:15:57  tvander
 * clean build
 *
 * Revision 1.22  2006/04/17 19:17:57  tvander
 * Arranged for memcpy_px and _xp to be included when needed, and not when not.
 *
 * Revision 1.21  2006/03/08 00:10:53  tvander
 * Clean build
 *
 * Revision 1.20  2006/03/06 03:42:19  Michael T. Fischer
 * More 6530 prep.
 *
 * Revision 1.19  2006/03/03 11:31:25  Michael T. Fischer
 * Prep for 6530 LCD, etc.
 *
 * Revision 1.18  2006/01/10 04:12:06  gmikef
 * Added PDATA support for CE Outputs.
 *
 * Revision 1.17  2006/01/04 04:47:56  gmikef
 * Switched RMS and VA calculations to use floating point. (and Calibration).
 *
 * Revision 1.16  2005/12/23 01:28:22  tvander
 * Fixed compile errors
 *
 * Revision 1.14  2005/10/28 02:23:38  gmikef
 * *** empty log message ***
 *
 * Revision 1.13  2005/10/12 23:00:07  tvander
 * Includes demonstratable mission mode, brownout, LCD and sleep modes
 *
 * Revision 1.12  2005/09/22 23:45:26  tvander
 * Clean build all models and unit tests, updated copyright to be fore Teridian
 *
 * Revision 1.11  2005/09/12 07:47:31  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.10  2005/08/31 05:58:22  gmikef
 * First version w/ LAPIE interface.
 *
 * Revision 1.9  2005/08/30 18:23:15  gmikef
 * *** empty log message ***
 *
 * Revision 1.8  2005/08/10 02:05:33  gmikef
 * *** empty log message ***
 *
 * Revision 1.7  2005/05/04 01:00:18  gmikef
 * *** empty log message ***
 *
 * Revision 1.14  2005/05/03 02:18:55  gmikef
 * *** empty log message ***
 *
 * Revision 1.13  2005/05/02 18:03:19  gmikef
 * *** empty log message ***
 *
 * Revision 1.6  2005/04/30 02:18:35  gmikef
 * *** empty log message ***
 *
 * Revision 1.5  2005/04/28 19:12:26  tvander
 * Comments only!  Restored history comments.
 *
 * Revision 1.4  2005/04/27 23:46:53  gmikef
 * Some MATH rountines now use 'idata'.
 * Added MATH_FAST flag to 'options.h".
 * Changed "6521B.Uv2" to max optimization.
 *
 * Revision 1.3  2005/04/21 02:07:01  gmikef
 * *** empty log message ***
 *
 * Revision 1.2  2005/04/12 21:53:34  tvander
 * Library and math, compiles ok, added some comments (needs more)
 *
 * Revision 1.1  2005/04/09 02:29:42  gmikef
 * *** empty log message ***
 *
 * 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.         *
 ***************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合一区二区| 制服丝袜亚洲播放| 亚洲另类一区二区| 久久久久久免费毛片精品| 波多野结衣精品在线| 午夜精品福利视频网站| 国产自产v一区二区三区c| 亚洲理论在线观看| 欧美国产1区2区| 精品国产免费一区二区三区香蕉| 日韩欧美在线网站| 在线电影国产精品| 5858s免费视频成人| 91蝌蚪porny| 99久久精品国产网站| 波多野结衣一区二区三区| 国产综合色视频| 色欧美乱欧美15图片| 在线免费一区三区| 麻豆传媒一区二区三区| 一区二区免费在线| 久久美女艺术照精彩视频福利播放| 91女厕偷拍女厕偷拍高清| 成人激情黄色小说| 国产精品一区二区在线观看不卡| 欧美影视一区在线| 一区二区视频免费在线观看| 男人操女人的视频在线观看欧美| 大桥未久av一区二区三区中文| 成人激情开心网| 亚洲一区二区偷拍精品| 国产一区二区免费在线| 精品国产91乱码一区二区三区| 在线精品国精品国产尤物884a| 不卡av在线网| 日韩黄色免费电影| 久久在线观看免费| 成人成人成人在线视频| 国产在线播放一区| 粉嫩av一区二区三区粉嫩| 国产一区中文字幕| 久草中文综合在线| 欧美日韩亚洲综合| 国内国产精品久久| 午夜不卡av免费| 久久99精品久久久久久久久久久久| 国产乱人伦偷精品视频免下载 | 久久精品视频免费观看| 亚洲精品一二三| 久久se精品一区精品二区| 成人免费视频视频在线观看免费| 国产成人亚洲精品青草天美| 亚洲精选一二三| 日韩国产欧美三级| 国产一区二区三区高清播放| 91高清在线观看| 26uuu亚洲综合色| 亚洲精品v日韩精品| 久久99这里只有精品| 97久久超碰精品国产| 欧美久久久久久久久久| 国产精品免费看片| 免费观看在线综合| 成人性色生活片免费看爆迷你毛片| 欧美大度的电影原声| 国产一区二区中文字幕| 欧美日韩1234| 亚洲欧洲制服丝袜| 成人av小说网| 国产日韩影视精品| 国产成人aaaa| 日本一区二区久久| 成人h版在线观看| 国产精品美日韩| 色哟哟国产精品免费观看| 亚洲欧美二区三区| 色综合久久六月婷婷中文字幕| 亚洲欧洲日韩女同| 色老综合老女人久久久| 亚洲va欧美va天堂v国产综合| 欧美精品久久久久久久多人混战 | 日韩 欧美一区二区三区| 性做久久久久久免费观看| 日韩国产欧美在线播放| 最新成人av在线| 亚洲第一会所有码转帖| 欧美电影免费观看完整版| 欧美精品xxxxbbbb| 粉嫩欧美一区二区三区高清影视 | 99热国产精品| 99久久久无码国产精品| 欧美性淫爽ww久久久久无| 日韩一区二区在线看| 国产一区二区网址| 久久影院电视剧免费观看| 在线精品视频一区二区| eeuss国产一区二区三区| 一区二区欧美国产| 一区二区三区在线免费视频| 久久久久久久网| 日韩欧美国产wwwww| 亚洲成av人片一区二区梦乃| 天天色 色综合| 成人免费在线视频| 精品久久五月天| 日本精品视频一区二区三区| 亚洲已满18点击进入久久| 日韩欧美电影一二三| 欧美视频在线一区二区三区| 欧美日韩国产一级片| 在线不卡的av| 精品免费国产二区三区| 欧美成人精精品一区二区频| 欧美一卡二卡在线| 欧美韩国一区二区| 日韩电影网1区2区| 成人亚洲精品久久久久软件| 欧美亚洲丝袜传媒另类| 91精品国产综合久久蜜臀| 亚洲电影在线免费观看| 一区二区视频在线看| 午夜精品久久久久久久久| 亚洲成人一区二区| 成人在线综合网| 久久免费美女视频| 亚洲精品乱码久久久久久久久 | 国产在线播精品第三| 欧美视频第二页| 国产午夜精品一区二区三区嫩草| 中文字幕一区二区三区色视频 | 另类的小说在线视频另类成人小视频在线| 国产麻豆成人传媒免费观看| 亚洲国产综合人成综合网站| 麻豆精品视频在线观看| 国产乱一区二区| 91首页免费视频| 3d成人动漫网站| 成人免费在线播放视频| 久久综合九色综合97婷婷女人| 天堂成人国产精品一区| 欧美三级电影精品| 99re热这里只有精品免费视频| 日韩免费观看高清完整版| 午夜精品久久久久影视| 国产精品视频第一区| 怡红院av一区二区三区| 国产精品资源在线观看| 欧美三级中文字幕| 中文字幕亚洲一区二区av在线| 亚洲免费看黄网站| 丰满亚洲少妇av| 中文字幕亚洲成人| 免费在线观看视频一区| 一区二区三区日本| 久久午夜老司机| 天天色天天操综合| 日本精品视频一区二区| 国产欧美精品一区| 日日骚欧美日韩| 91美女在线看| 欧美成人艳星乳罩| 欧美一级高清大全免费观看| 麻豆精品国产传媒mv男同| 婷婷一区二区三区| 日本美女一区二区| 久久久久国产免费免费| 狠狠色综合色综合网络| 性做久久久久久久久| eeuss鲁片一区二区三区在线看| 国产欧美一区二区在线| 久久国产免费看| 在线观看一区二区视频| 91欧美一区二区| 欧美日韩国产区一| 美女一区二区三区| 久久成人麻豆午夜电影| 欧美自拍偷拍一区| 国产乱码精品一区二区三区av | 国产亚洲精品aa| 成人av网站在线观看| 日本vs亚洲vs韩国一区三区二区 | 亚洲va欧美va人人爽午夜| 久久久蜜桃精品| 欧美tickle裸体挠脚心vk| 欧美三级一区二区| 在线观看免费成人| 在线看国产日韩| 欧美性猛交xxxx乱大交退制版| 成人av电影在线播放| 风间由美中文字幕在线看视频国产欧美| 亚洲电影欧美电影有声小说| 亚洲免费观看视频| 亚洲天堂福利av| 亚洲男人的天堂网| 亚洲欧美偷拍另类a∨色屁股| 国产精品另类一区| 亚洲国产精华液网站w| 精品国产3级a| 国产丝袜欧美中文另类| 国产欧美日韩精品a在线观看|