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

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

?? freq.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 - Frequency Validity.
// 
//  AUTHOR:  MTF
//
//  HISTORY: See end of file
//**************************************************************************
// File: FREQ.C 
//
#include "options.h"
#include "irq.h"  // interrupt control
#include "lcd.h"
#include "meter.h"
#include "freq.h"

enum FREQ_SRC  { SELECT_A, SELECT_B, SELECT_C };

#if FREQUENCY
/*** Public functions declared in the module. ***/
// See "meter.h".

#define SEVENTY_HZ 0x71B9DF9L           // Maximum allowable frequency.

// Scale factors.
#define TENTH_HZ (0x001A0000l / 10)   // 13 * 2^17 / 10 = (2^32 / (2^15 / 13)) / 10.
#define TWENTIETH_HZ (0x001A0000l / 20)
#define convert_frequency(d) ((d + TWENTIETH_HZ) / TENTH_HZ)

void frequency_lcd (void)
{
    LCD_Number (convert_frequency (Frequency), 5, 1);
    LCD_1DP ();             // One (1) decimal place.
}
#endif // FREQUENCY.

#if MAIN_EDGE_COUNT
static void Display_Main_Edge_Count (uint32_t d);

void main_edge_cnt_lcd (uint8_t select)
{
    switch (select)
    {
       default:
       #if !RTC_LINE_LOCKED
       case 1:
          Display_Main_Edge_Count (MainEdgeCount);
          break;
       #endif
       case 2:
          Display_Main_Edge_Count (main_edge_cnt);
          break;
    }
}

static void Display_Main_Edge_Count (uint32_t d)
{
    d %= 1000000L; 
    LCD_Number (d, 6, 0);               // Display up to six digits.
}
#endif

#if FREQUENCY || MAIN_EDGE_COUNT || RTC_LINE_LOCKED
void Determine_Frequency (void)
{
    // read which element is being measured
    // The 6520 only reads element A
    #if M6520 || TRACE11 
    bool clear = FALSE;
    if(Status & MINVA) // the only possible element
        clear = TRUE;
    #elif TRACE13
    bool clear = FALSE;
    enum FREQ_SRC element;    
    element = (enum FREQ_SRC) memget_ce (&freqsel);
    #elif M6515
    bool clear = FALSE;
    enum FREQ_SRC element;    
    element = (enum FREQ_SRC) freqsel;
    #else
    #error unknown device type
    #endif

    #if !M6520 && !TRACE11
    // decide if it's ok to use its frequency and edge counts
    switch(element)
    {
    default: // fall through to the first available case
    case SELECT_A:  // always present
        if(Status & MINVA)
            clear = TRUE;
        break;

    // Is the voltage present?
    #if EQUATION != _1ELEMENT_2WIRE && EQUATION != _1ELEMENT_3WIRE
    case SELECT_B:
        if(Status & MINVB)
            clear = TRUE;
        break;
    #endif

    // Is the voltage present?
    #if EQUATION == _2ELEMENT_4WIRE_DELTA || EQUATION == _3ELEMENT_4WIRE_WYE 
    case SELECT_C:
        if(Status & MINVC)
            clear = TRUE;
        break;
    #endif
    }
    #endif // EQUATION != _1_ELEMENT_2WIRE

    // This is a critical region.
    // 1. Because the inputs come from the CE.
    // 2. because these values can be used
    // to lock the real-time-clock to the line frequency.
    // See rtc.c
    irq_disable();
    if (clear)
    { 
        // If the RTC line lock option is selected, then if
        // the nominal count is not cleared, it will stop the clock...
        #if MAIN_EDGE_COUNT || RTC_LINE_LOCKED
        main_edge_cnt_nom = 0;       // disable usage before clearing count
        main_edge_cnt = 0;           // The edge count is not valid
        #endif
        #if FREQUENCY                // The frequency source is not valid,
        Frequency = 0;
        #endif                            
    }
    else
    { // The frequency source is valid.
        #if FREQUENCY
        Frequency = freq;
        #endif
        #if MAIN_EDGE_COUNT || RTC_LINE_LOCKED
        MainEdgeCount += main_edge_cnt;
        // Set the nominal edge cnt automatically if possible
        // Setting enables usage
        #if FREQUENCY
        main_edge_cnt_nom = (freq > (long)(55. / 0.587e-6)) ? 120 : 100;
        #else
        // define line frequency in options.h
        main_edge_cnt_nom = (LINE_FREQ*2);
        #endif
        #endif
    }
    irq_enable();
}
#endif // FREQUENCY || MAIN_EDGE_COUNT || RTC_LINE_LOCKED

/***************************************************************************
 * History:
 * $Log: freq.c,v $
 * Revision 1.32  2006/10/13 00:51:10  tvander
 * Removed compile options for 6530, 6515;
 * renamed 6511 and 6513 to trace11 and trace13;
 * Binary verified unchanged from previous version.
 *
 * Revision 1.31  2006/10/06 01:39:11  tvander
 * Changed so that if the RTC is locked to the line, main_edge count is measured.
 * The edge-count display routines are still enabled only by the main-edge-count flag.
 *
 * Revision 1.30  2006/09/14 00:38:32  tvander
 * Spaces for tabs
 *
 * Revision 1.29  2006/09/13 21:38:51  gmikef
 * *** empty log message ***
 *
 * Revision 1.28  2006/09/12 02:44:52  gmikef
 * *** empty log message ***
 *
 * Revision 1.27  2006/09/09 01:13:50  gmikef
 * *** empty log message ***
 *
 * Revision 1.26  2006/08/18 23:24:00  tvander
 * Fixed compile switches
 *
 * Revision 1.25  2006/08/08 18:46:13  tvander
 * Added an option for 6515 test PCB
 *
 * Revision 1.24  2006/07/27 00:58:01  tvander
 * Fixed code to lock RTC to line frequency.  Added a single byte to the shared
 * data structure.
 *
 * Revision 1.23  2006/07/25 00:29:42  tvander
 * Drop display of main edge count when it is being used to lock the clock to the line.
 *
 * Revision 1.22  2006/07/13 22:33:20  tvander
 * Fixed anomalies with counting.
 *
 * Revision 1.21  2006/06/14 02:46:37  tvander
 * Faster LCD display.
 *
 * Revision 1.20  2006/06/09 22:40:02  tvander
 * Redesigned to use status information from the redesigned creep.
 *
 * Revision 1.19  2006/06/08 20:56:31  tvander
 * Fixed "determine freq" so it only measures voltage sensors that are active.
 * Also disables interrupts only fo rthe feature that actually needs it.
 *
 * Revision 1.18  2006/05/18 23:18:52  tvander
 * 16K and 32K
 * First cut at new requirements.
 * 32K 6521 is grossly tested.
 * All others have a clean compile with C51 8.02
 *
 * Revision 1.17  2006/04/25 01:09:55  tvander
 * Integrated improved RTC.  Compensates for time off, has default constant
 * compensation.  Computes true hours of operation.
 *
 * Revision 1.16  2006/03/06 03:38:22  Michael T. Fischer
 * More 6530 prep.
 *
 * Revision 1.15  2006/03/03 11:30:08  Michael T. Fischer
 * Prep for 6530 LCD, etc.
 *
 * Revision 1.14  2006/01/16 20:11:27  tvander
 * Clean Keil build, all versions
 *
 * Revision 1.12  2005/12/21 01:35:27  tvander
 * 6513
 *
 * Revision 1.11  2005/10/08 04:41:24  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.10  2005/09/28 20:54:02  tvander
 * V/I phase displays for all phases,
 * main edge count displays for both types,
 * rewrote setup from defaults to group related functions.
 *
 * Revision 1.9  2005/09/28 00:53:34  tvander
 * Fixed freq and temperature displays
 *
 * Revision 1.8  2005/09/22 23:45:15  tvander
 * Clean build all models and unit tests, updated copyright to be fore Teridian
 *
 * Revision 1.7  2005/08/30 18:16:11  gmikef
 * *** empty log message ***
 *
 * Revision 1.6  2005/08/12 06:01:56  gmikef
 * Added MPU temperature compensation for GAIN_ADJ.
 * Added changes to support new CE 6521 code.
 *
 * Revision 1.5  2005/08/10 02:02:18  gmikef
 * *** empty log message ***
 *
 * Revision 1.4  2005/07/01 00:32:37  tvander
 * Changed the nomenclature on the Status register so that it could be accessed in a byte-wise way.
 *
 * Revision 1.3  2005/04/30 02:13:45  gmikef
 * *** empty log message ***
 *
 * Revision 1.6  2005/04/27 21:38:08  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.         *
 ***************************************************************************/
/* freq.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国av在线一区| 五月婷婷激情综合| 成人精品视频一区二区三区| 国产欧美一区二区精品仙草咪| 精品一区二区在线看| 久久视频一区二区| 国产一区二区精品久久| 国产清纯白嫩初高生在线观看91| 国产精品亚洲а∨天堂免在线| 国产精品嫩草99a| 91啪亚洲精品| 日本特黄久久久高潮| 精品99久久久久久| 99久久免费精品高清特色大片| 一区二区三区欧美在线观看| 欧美色图片你懂的| 精品一区二区在线看| 国产丝袜美腿一区二区三区| 不卡在线观看av| 亚洲成国产人片在线观看| 日韩女优av电影| 99精品视频在线观看| 视频一区免费在线观看| 久久久久久亚洲综合影院红桃| av网站一区二区三区| 亚洲国产aⅴ天堂久久| 精品成人在线观看| 色婷婷av一区二区三区之一色屋| 日韩av一区二| 亚洲视频免费观看| 欧美videos中文字幕| 色综合久久久久久久久| 久久99国产精品久久| 中文字幕在线观看一区| 制服丝袜av成人在线看| av电影在线不卡| 精品在线播放免费| 亚洲国产精品久久人人爱蜜臀| 国产亚洲精品免费| 88在线观看91蜜桃国自产| 国产不卡免费视频| 日韩av一区二| 一区二区三区中文字幕精品精品| 日韩午夜电影在线观看| 色婷婷av一区二区三区软件| 国产精品综合在线视频| 奇米影视在线99精品| 亚洲女人****多毛耸耸8| 久久免费看少妇高潮| 91麻豆精品国产| 在线看日韩精品电影| 国产不卡免费视频| 激情综合色播五月| 婷婷久久综合九色综合绿巨人| 国产精品乱子久久久久| 久久久久久久网| 精品日韩在线观看| 91精品国产综合久久精品图片 | 国产成人av影院| 日本va欧美va瓶| 亚洲资源中文字幕| 成人免费一区二区三区在线观看| 久久久高清一区二区三区| 日韩一级完整毛片| 日韩一区二区三区四区五区六区| 欧美日韩一区高清| 日韩欧美黄色影院| 日本精品一区二区三区高清 | 亚洲3atv精品一区二区三区| 国产精品国产三级国产| 欧美激情一区二区在线| 久久久精品蜜桃| 日本一区二区三区久久久久久久久不| 日韩欧美一二区| 欧美一区二区播放| 日韩精品中文字幕在线一区| 欧美成人性战久久| 欧美成人aa大片| 久久丝袜美腿综合| 国产欧美日韩视频一区二区| 久久精品在这里| 欧美极品aⅴ影院| 国产精品毛片a∨一区二区三区| 国产三级精品三级| 国产精品久久久久久久久晋中| 国产精品卡一卡二| 亚洲欧美一区二区在线观看| 中文字幕一区av| 亚洲综合免费观看高清完整版在线 | 色综合久久中文字幕| 日本道在线观看一区二区| 欧美系列一区二区| 91精品国产品国语在线不卡| 精品欧美乱码久久久久久1区2区| 日韩视频在线永久播放| 欧美精品一区二区精品网| 国产亚洲污的网站| 亚洲视频在线观看三级| 亚洲精品成人a在线观看| 午夜私人影院久久久久| 久久精品国产精品亚洲综合| 国产成人精品亚洲777人妖| 99热精品一区二区| 欧美日韩精品三区| 欧美精品一区二区久久婷婷| 国产精品久久久久婷婷| 亚洲高清一区二区三区| 激情av综合网| 91网站最新地址| 91精品国产综合久久久蜜臀图片 | av综合在线播放| 欧美另类videos死尸| 欧美精品一区二| 亚洲男同性视频| 美女mm1313爽爽久久久蜜臀| 99久久精品国产导航| 欧美一级欧美三级| 国产精品国产自产拍在线| 亚洲v日本v欧美v久久精品| 激情文学综合插| 91蜜桃网址入口| 日韩精品专区在线影院观看| 国产精品短视频| 免费看黄色91| 色一情一伦一子一伦一区| 欧美一卡2卡三卡4卡5免费| 亚洲三级在线免费观看| 久久精品国产久精国产爱| 91麻豆swag| 久久一区二区三区国产精品| 亚洲动漫第一页| 91香蕉国产在线观看软件| 精品嫩草影院久久| 亚洲成人av一区| 99久久精品国产毛片| 久久蜜臀中文字幕| 日韩精品福利网| 在线观看一区二区视频| 国产精品女上位| 国内精品视频666| 欧美日韩高清在线| 亚洲人成7777| 粉嫩一区二区三区性色av| 日韩一区二区电影网| 亚洲已满18点击进入久久| 成人综合婷婷国产精品久久| 精品成人一区二区三区四区| 天天色图综合网| 欧美三区在线视频| 亚洲欧美色一区| www.亚洲人| 亚洲国产精品成人综合 | 欧美一卡二卡三卡四卡| 亚洲午夜精品17c| 欧美主播一区二区三区| 国产精品伦一区| 成人黄色av电影| 亚洲国产精品t66y| 国产成人免费网站| 久久精品人人爽人人爽| 国产一区二区三区香蕉| 日韩欧美二区三区| 免费观看久久久4p| 日韩视频一区在线观看| 首页综合国产亚洲丝袜| 欧美日韩久久久一区| 视频一区在线播放| 777午夜精品免费视频| 日日夜夜免费精品| 日韩视频在线观看一区二区| 另类中文字幕网| 精品久久久久久最新网址| 九色|91porny| 久久亚洲精精品中文字幕早川悠里 | 久久新电视剧免费观看| 国产精品一区二区在线看| 国产日产亚洲精品系列| 国产91丝袜在线观看| 日韩码欧中文字| 欧美色视频一区| 麻豆一区二区三| 精品裸体舞一区二区三区| 国产成人综合亚洲网站| 国产精品国产三级国产aⅴ原创 | 国产精品网站在线观看| 成人高清免费观看| 亚洲免费视频中文字幕| 在线电影国产精品| 狠狠色伊人亚洲综合成人| 国产亚洲午夜高清国产拍精品 | 色狠狠综合天天综合综合| 午夜亚洲国产au精品一区二区| 日韩色在线观看| 国产不卡在线一区| 亚洲综合久久久| 日韩精品一区二区三区三区免费| 国产成人丝袜美腿| 亚洲午夜免费电影| 亚洲精品一区二区在线观看| 99re成人在线|