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

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

?? error.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) 2006 Teridian Semiconductor Corp. All Rights Reserved.    *
 ***************************************************************************/
//**************************************************************************
//  DESCRIPTION: 71M652x POWER METER - error recording
// 
//  AUTHOR:  RGV
//
//  HISTORY: See end of file.
//**************************************************************************
// File: error.c
//               
#include "options.h"
#if ERROR_RECORDING
#include FILE_DEFINING_ERROR   // meter.h
#include "library.h"
#include "eeprom.h"
#include "error.h"

/*** External functions referenced by this module ***/
// Refer to include files.

/*** External variables referenced by this module ***/

/*** Public functions referenced by this module ***/

/*** Public variables referenced by this module ***/

/*** Private functions referenced by this module ***/

/*** Private variables referenced by this module ***/

// record new errors
#pragma save
#pragma NOAREGS
void Error_Record (void) small reentrant // in case of a sag
{
    // Get a private copy that interrupts can't change
    int32_t my_status = Status;
    int32_t unrecorded = my_status ^ OldStatus; // changed bits
    uint8_t changed = FALSE;

    unrecorded &= WORTH_RECORDING;  // record worthwhile errors
    unrecorded &= my_status; // record only when error becomes 1

    while (unrecorded) // errors exist
    {
        uint8_t done = FALSE;
        uint8_t errno, errno_min, ierMin, ier;
        uint32_t mask;
        // find the highest-numbered (most important) unrecorded error
        errno = 31;
        mask = 0x80000000;
        for(; mask != 0;)
        {
            if(mask & unrecorded)
            {
                unrecorded &= ~mask;  // remove the error
                break;
            }
            mask = (mask >> 1);
            errno -= 1;
        }
        // is the unrecorded error equal to a recorded error?
        for(ierMin = ierMax; ierMin <= ierMax; --ierMin)
        {
            if (Aer[ierMin].errno == errno)
            {
                // it's equal!  Record the new occurrence.
                Aer[ierMin].month = Rtc_Month;
                Aer[ierMin].date = Rtc_Date;
                Aer[ierMin].hour = Rtc_Hour;
                if(Aer[ierMin].cnt < UINT8_MAX)
                    Aer[ierMin].cnt += 1;
                done = TRUE;
                changed = TRUE;
                break;
            }
        } 
        if (done)
            break; // it was equal; we're done
        // find the smallest (least important) stored error number
        errno_min = 32;
        for(ier = 0; (!done) && (ier <= ierMax); ++ier)
        {
            if (Aer[ier].errno < errno_min)
            {
                ierMin = ier;
                errno_min = Aer[ier].errno;
            }
        } 
        // is the new error more important than the least important record?
        if (errno_min < errno)
        {
            // Record the new error in place of the least important record.
            Aer[ierMin].month = Rtc_Month;
            Aer[ierMin].date = Rtc_Date;
            Aer[ierMin].hour = Rtc_Hour;
            Aer[ierMin].errno = errno;
            Aer[ierMin].cnt = 1;
            changed = TRUE;
        }
        else
        {
            // Records are more important than anything new; stop storing
            unrecorded = 0;
        }
    }

    // forget that the errors are new
    OldStatus = my_status;

    if (changed)
    {
        LRC_Calc_NVR ((uint8x_t *) &Totals.Err, sizeof (Totals.Err), TRUE);
        memcpy_prx (
                EEPROM_ERRORS,
                (uint8x_t*)&Totals.Err, // The start of the data
                (sizeof (Totals.Err)) );  // get the revenue registers
        changed = FALSE;
    }
}
#pragma restore


// Clear the errors
void Error_Clear (void)
{
    memset_x ((uint8x_t *) &Totals.Err, 0x00, sizeof (Totals.Err));
    LRC_Calc_NVR ((uint8x_t *) &Totals.Err, sizeof (Totals.Err), TRUE);
    memcpy_prx (
            EEPROM_ERRORS,
            (uint8x_t*)&Totals.Err, // The start of the data
            (sizeof (Totals.Err)) );  // get the revenue registers
}

// initialize the error system
void Error_Init (void)
{
    EEProm_Config (1, PAGE_SIZE, WRITE_TIME);
    memcpy_xpr (
        (uint8x_t*)&Totals.Err, // The start of the data
        EEPROM_ERRORS,
		sizeof (Totals.Err) );

    if(!LRC_Calc_NVR ((uint8x_t *) &Totals.Err, sizeof (Totals.Err), TRUE))
    {
        Error_Clear ();
    }
}

/***************************************************************************
 * History:
 * $Log: error.c,v $
 * Revision 1.3  2006/09/09 01:13:47  gmikef
 * *** empty log message ***
 *
 * Revision 1.2  2006/06/29 00:58:09  tvander
 * Added NOAREGs to reeentrant code.
 *
 * Revision 1.1  2006/06/06 04:00:56  tvander
 * Keeps an error list with times.
 *
 *
 * Copyright (C) 2006 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 /* ERROR */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品女同一区二区| 亚洲乱码国产乱码精品精小说| 97精品国产露脸对白| 日韩在线a电影| 一区二区中文视频| 亚洲精品在线免费观看视频| 欧美羞羞免费网站| 99久久久久免费精品国产 | 一区二区三区日韩在线观看| 久久蜜臀中文字幕| 日韩一区二区在线看| 欧美综合一区二区| 91在线国内视频| 国产成人久久精品77777最新版本| 日韩精品电影在线| 老司机免费视频一区二区三区| 中文字幕一区二区日韩精品绯色| 久久综合狠狠综合久久激情| 欧美日韩免费一区二区三区视频| jizz一区二区| 成人爱爱电影网址| 国产精品一二一区| 国产一区二区主播在线| 蜜桃91丨九色丨蝌蚪91桃色| 石原莉奈在线亚洲二区| 一区二区三区四区亚洲| ...av二区三区久久精品| 国产日韩欧美精品综合| 久久女同性恋中文字幕| 久久综合九色综合久久久精品综合| 欧美喷水一区二区| 7777精品伊人久久久大香线蕉完整版 | 日韩黄色一级片| 亚洲一区二区成人在线观看| 亚洲色图都市小说| 亚洲欧洲三级电影| 亚洲视频免费在线观看| 椎名由奈av一区二区三区| 日本一区二区三区视频视频| 国产日韩亚洲欧美综合| 国产日韩欧美高清在线| 久久综合久久综合久久综合| 欧美成va人片在线观看| 欧美tickling挠脚心丨vk| 亚洲精品一区二区三区香蕉| 久久久久一区二区三区四区| 中文字幕 久热精品 视频在线 | 欧美三级一区二区| 欧美日韩国产高清一区二区三区| 欧美精品在线一区二区| 日韩一级二级三级精品视频| 日韩一级二级三级| 久久久99精品久久| 国产精品人成在线观看免费| 亚洲精品国产一区二区三区四区在线| 一区二区在线电影| 丝袜亚洲精品中文字幕一区| 亚洲18女电影在线观看| 日本欧美在线观看| 国产一区二区在线电影| 成人国产精品视频| 欧美日韩日日夜夜| 久久影院视频免费| 中文幕一区二区三区久久蜜桃| 亚洲色图色小说| 日韩高清国产一区在线| 国内精品伊人久久久久av影院| 国产·精品毛片| 欧美亚洲国产一区二区三区va| 日韩欧美的一区二区| 国产精品免费久久| 亚洲电影在线免费观看| 九九视频精品免费| 99久久er热在这里只有精品66| 欧美制服丝袜第一页| 精品国产91亚洲一区二区三区婷婷| 欧美国产国产综合| 亚洲一区二区欧美激情| 国产一区二区三区在线看麻豆| 成人黄页在线观看| 欧美人xxxx| 国产精品理论片在线观看| 偷拍日韩校园综合在线| 粉嫩aⅴ一区二区三区四区| 欧美日韩一区高清| 国产午夜精品一区二区| 偷拍亚洲欧洲综合| 99re热这里只有精品免费视频 | 欧美日本一道本| 国产亚洲一区字幕| 亚洲天堂av一区| 波多野结衣在线一区| 成人av影院在线| 日韩一区二区精品在线观看| 国产精品久久久一区麻豆最新章节| 亚洲午夜精品17c| 成人性生交大片免费看在线播放| 欧美理论在线播放| 1区2区3区国产精品| 久久精品国产精品亚洲综合| 欧美写真视频网站| 国产精品视频yy9299一区| 日韩成人免费电影| 91国在线观看| 国产精品美女久久久久高潮| 成人黄色小视频在线观看| 欧美久久高跟鞋激| 亚洲欧洲精品天堂一级| 国产盗摄一区二区| 欧美xxx久久| 亚洲不卡av一区二区三区| 99久久综合国产精品| 久久品道一品道久久精品| 奇米色一区二区| 欧美日韩亚洲综合在线 | 久久久精品人体av艺术| 蜜桃精品在线观看| 7777精品久久久大香线蕉| 亚洲综合激情网| 97精品久久久午夜一区二区三区| 欧美国产丝袜视频| 国产福利不卡视频| 国产女主播一区| 国产精品一区一区三区| 久久亚洲一区二区三区明星换脸| 日韩av成人高清| 7777精品伊人久久久大香线蕉最新版| 亚洲在线视频一区| 欧亚洲嫩模精品一区三区| 一区二区三区精品久久久| 色婷婷av一区二区| 亚洲精品国产a久久久久久| 色一情一乱一乱一91av| 亚洲色图都市小说| 色噜噜久久综合| 一区二区三区在线不卡| 欧洲视频一区二区| 亚洲一区二区av在线| 欧美精品xxxxbbbb| 免费成人性网站| 精品国产91久久久久久久妲己 | 亚洲动漫第一页| 欧美精选在线播放| 久久精品二区亚洲w码| 精品久久久久久久一区二区蜜臀| 捆绑紧缚一区二区三区视频| 精品少妇一区二区三区日产乱码 | 色综合视频在线观看| 亚洲永久免费av| 欧美美女bb生活片| 极品美女销魂一区二区三区免费| 久久久国产精品麻豆| 成人性色生活片| 亚洲黄色小视频| 91精品国产美女浴室洗澡无遮挡| 奇米精品一区二区三区在线观看一 | 国产精品的网站| 欧美亚洲动漫精品| 激情文学综合丁香| 中文字幕不卡在线观看| 91国产成人在线| 美腿丝袜在线亚洲一区| 国产女同互慰高潮91漫画| 色综合久久88色综合天天6| 亚洲成人免费av| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲日本va午夜在线影院| 欧美电影一区二区| 国产精品一线二线三线| 亚洲美女免费视频| 日韩你懂的电影在线观看| 成人高清在线视频| 日韩av电影免费观看高清完整版| 久久精品人人做| 欧美在线观看一区二区| 玖玖九九国产精品| 中文字幕一区二区三区在线观看 | 精品国产一区二区在线观看| 成人黄页毛片网站| 图片区小说区国产精品视频| 国产欧美一区二区三区在线看蜜臀 | 国产视频亚洲色图| 欧美日韩久久不卡| 国产夫妻精品视频| 水蜜桃久久夜色精品一区的特点| 久久久www免费人成精品| 在线观看一区二区视频| 国产一区二区三区免费| 樱桃国产成人精品视频| 欧美一级二级在线观看| 色八戒一区二区三区| 国产麻豆成人传媒免费观看| 五月天丁香久久| 亚洲日本电影在线| 久久久久9999亚洲精品| 5566中文字幕一区二区电影 | 6080yy午夜一二三区久久| 色综合一个色综合亚洲| 国产一区二区三区av电影| 视频在线观看一区|