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

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

?? i2c.c

?? 一個很好的完整的空調控制器程序
?? C
字號:
/**************** (c) 2005   佛山菱電 *****************************************
PROJECT  : AUX VRV 柜機/掛機
COMPILER : AVR GCC/ICC
MODULE   : i2c.c
VERSION  : 1.0.0
DATE     : 2005/12/30
AUTHOR   : 朱坤
DESCRIPTION :  EEPROM routine

MODIFICATIONS :
******************************************************************************/
#include "i2c.h"
#include "ports.h"
#include "main.h"
#include "timer.h"
#include "swing.h"
#include "rem.h"
#include "fan.h"

#ifdef EnEEPROM

u8 EEPTm;       /* EEPROM 刷新時間間隔 20mS on 4mS */
u8 EEPCnt;      /* 參數序號,參數地址 * 2 */
u8 EEPBuf0;     /* 緩沖區,雙字節 */
u8 EEPBuf1;

#ifdef EnDEBUG
u8 EEPTBuf[EEPIDMAX];
#endif

/*-----------------------------------------------------------------------------
ROUTINE NAME : SaveToEEPROM
INPUT/OUTPUT :
   EEPCnt: 參數代號,每個參數在 EEPROM 中占 2 個字節,因此,參數在 EEPROM
           中的地址為:EEPcnt*2
   EEPBuf: 緩沖區指針,存放待寫的參數值
   EEPTm:  刷新時間間隔 20mS on 4mS
   EEPIDMAX: 參數個數

DESCRIPTION  : 向 EEPROM 寫參數,EEPMAX 定義每個參數字節數
   在給定的時間間隔內,不停的刷新 EEPROM 中的參數

COMMENTS :
; 掉電記憶保存的內容(共15項)
; - 標示字節  5D
; - 內機配置字節 SysConfig
; - 設定溫度     SetupTp
; - 內機工作模式 RunMode
; - 內機風機風速 FanStatus
; - 擺風狀態     FDoorUnit
; - 內機功率     PowerConst
; - 擺風位置記憶 BjSaveL
;                BjSaveH
; - 制熱時內機補償溫度  SetOffset
; - 內機ID              WJ_NJNo
; - 制冷調閥零點        SetOnCool
; - 制熱調閥零點        SetOnHeat
; - 非調節溫度          SetUnacc
; - 制熱膨脹閥常開開度  SetOn
-----------------------------------------------------------------------------*/
void SaveToEEPROM(void)
{
   u8 i;

   if (EEPTm++ >= 100){
     EEPTm = 0;                     /* 清除間隔 */

     if (++EEPCnt >= EEPIDMAX) EEPCnt = 0;
     /* 修改參數時不更新內機參數 */
     //if ((AckTm >= 180) && (EEPCnt >= 6)) EEPCnt = 0;
     switch (EEPCnt){             /* 對參數進行處理 */
       case 0:
         i = 0x5D;               /* 標示字節 5D */
         break;
       case 1:
         i = SysConfig;          /* 內機配置字節*/
         break;
       case 2:
         i = SetupTp;            /* 設定溫度(0x00-0F) */
         break;
       case 3:
         i = RunMode;            /* 開關機標志,內機工作模式 */
         break;
       case 4:
         i = FanStatus;          /* 內風機風速 */
         break;
#ifdef EnSWING
       case 5:
         i = FDoorUnit;          /* 掃風模式 */
         break;
#endif
       case 6:
         i = PowerConst;         /* 內機功率 */
         break;
       case 9:
#ifdef  ChigoXG1
#ifndef ChigoXG1Set
         i = SetOffset;          /* 制熱時內機補償溫度 */
#else
         i = ChigoXG1Set;
#endif
#else
         i = 0x80;
#endif
         break;
#ifdef EnSTYLE5
       case 10:
         i = WJ_NJNo;            /* 內機ID  */
         break;
       case 11:
         i = SetOnCool;          /* 制冷調閥零點 */
         break;
       case 12:
         i = SetOnHeat;          /* 制熱調閥零點 */
         break;
       case 13:
         i = SetUnacc;           /* 非調節溫度 */
         break;
       case 14:
         i = SetOn;              /* 制熱膨脹閥常開開度 */
         break;
#endif  /* EnSTYLE5 */
       default:
         i = 0;
         break;
     }

     EEPBuf0 = EEPROMReadByte((u16)(EEPCnt << 1));
     EEPBuf1 = EEPROMReadByte((u16)((EEPCnt << 1) + 1));
     if ((i != EEPBuf0) || (i != EEPBuf1)){
       EEPROMWriteByte((u16)(EEPCnt << 1), i);     /* 刷新 */
       EEPROMWriteByte((u16)((EEPCnt << 1) + 1), i);
     }
   }
}

void EEPROMWriteByte(u16 uiAddress, u8 ucData)
{
   WWD_Refresh();       /* 刷新看門狗 */

   /* Wait for completion of previous write */
   /* EECR: - - - - EERIE EEMWE EEWE EERE */
   while(EECR & (1<<EEWE));
   /* 等待 SPM 完成 */
   while (SPMCR & (1<<RWWSB));

   /* Set up address and Data Registers */
   EEAR = uiAddress;
   EEDR = ucData;
   DisableInterrupts(); /* 禁止中斷 */
   EECR |= (1<<EEMWE);  /* Write logical one to EEMPE */
   EECR |= (1<<EEWE);   /* Start eeprom write by setting EEPE */
   EnableInterrupts();
}

u8 EEPROMReadByte(u16 uiAddress)
{
   WWD_Refresh();       /* 刷新看門狗 */

   /* Wait for completion of previous write */
   while(EECR & (1<<EEWE));
   /* 等待 SPM 完成 */
   while (SPMCR & (1<<RWWSB));

   EEAR = uiAddress;  /* Set up address register */
   EECR |= (1<<EERE); /* Start eeprom read by writing EERE */
   return EEDR;       /* Return data from Data Register */
}
#endif

void GetFromEEPROM(void)
{
   SysConfig = (u8)(1<<fEnMemo);
   RunMode = (u8)((1<<fLtdSwOn)|MODEAUTO);
//   FanStatus = FANAUTO_S;
//   SetFDoorUnit(SWINGAUTO);
   SetupTp = 0x80 + 24;   /* 設置缺省值 24 */

#ifdef  ChigoXG1
#ifndef ChigoXG1Set
   SetOffset = ChigoXG1Val;
#endif
#endif

#ifdef EnSTYLE5
   PowerConst = 5;        /* 2500W */
   SetOnCool = 0x81;      /* 1  -10 - 10 */
   SetOnHeat = 0x7F;      /* -1 -10 - 10 */
   WJ_NJNo = 1;           /* 缺省 1# */
   SetUnacc  = 1;         /* 1   0  - 10 */
   SetOn = 100;           /* 100 */
#else
#if (NJTYPE == 0)||(NJTYPE == 1)||(NJTYPE == 3)||(NJTYPE == 4)
   PowerConst = 3;        /* 1.5P */
#elif (NJTYPE == 2)||(NJTYPE == 5)
   PowerConst = 6;        /* 3P */
#endif
#endif /* EnSTYLE5 */

#ifdef EnEEPROM
   EEPCnt = 0;
   while (EEPCnt < EEPIDMAX){
     EEPBuf0 = EEPROMReadByte((u16)(EEPCnt << 1));
     EEPBuf1 = EEPROMReadByte((u16)((EEPCnt << 1) + 1));

     if (EEPBuf0 == EEPBuf1){
       if ((EEPCnt != 7) && (EEPBuf0 == 0x0FF)){
         EEPCnt = EEPIDMAX;
       }
       switch(EEPCnt){                /* 對參數進行處理 */
         case 0:
           if (EEPBuf0 != 0x5D) EEPCnt = EEPIDMAX;
           break;
         case 1:
           if ((u8)(EEPBuf0 & ~SYSCONMASK) == 0){
             SysConfig = EEPBuf0;   /* 內機配置字節 */
           }
           break;
         case 2:                      /* 設定溫度 */
           if ((EEPBuf0 >= SetupTpMIN) &&
               (EEPBuf0 <= SetupTpMAX)) SetupTp = EEPBuf0;
           break;
         case 3:                             /* 開關機標志,內機工作模式 */
           if (ValBit(SysConfig,fEnMemo)){   /* 1: 允許掉電記憶 */
             RunMode = (u8)(EEPBuf0 & ((1<<fSysOnOff)|(1<<fLtdSwOn)|MODEMASK));
             SetBit(Sysflag,fSysInit);    /* 1:系統初始化標志 */
           } else {
             RunMode = (u8)(EEPBuf0 & ((1<<fLtdSwOn)|MODEMASK));
           }
           break;
         case 4:
           FanStatus = (u8)(EEPBuf0 & FANMASK_S); /* 內風機風速 */
           break;
#ifdef EnSWING
         case 5:
           FDoorUnit = (u8)(EEPBuf0 & SWINGMASK); /* 掃風模式 */
           break;
#endif
         case 6:
           if (EEPBuf0 != 0) PowerConst = EEPBuf0; /* 內機功率 */
           break;
#ifdef  ChigoXG1
#ifndef ChigoXG1Set
         case 9:                                /* 制熱時內機補償溫度 */
           if ((EEPBuf0 >= 118) &&
               (EEPBuf0 <= 138)) SetOffset = EEPBuf0;
           break;
#endif
#endif
#ifdef EnSTYLE5
         case 10:
           if (((EEPBuf0 & NJNOMASK) >= WJ_NJNoMIN) &&
               ((EEPBuf0 & NJNOMASK) <= WJ_NJNoMAX)){
             WJ_NJNo = EEPBuf0;
           }
           break;
         case 11:    /* 制冷調閥零點 -10 - 10 */
           if ((EEPBuf0 >= 118) &&
               (EEPBuf0 <= 138)) SetOnCool = EEPBuf0;
           break;
         case 12:    /* 制熱調閥零點 -10 - 10 */
           if ((EEPBuf0 >= 118) &&
               (EEPBuf0 <= 138)) SetOnHeat = EEPBuf0;
           break;
         case 13:    /* 非調節溫度 0 - 10 */
           if (EEPBuf0 <= 10) SetUnacc = EEPBuf0;
           break;
         case 14:    /* 制熱膨脹閥常開開度 */
           if (EEPBuf0 >= 40) SetOn = EEPBuf0;
           break;
#endif  /* EnSTYLE5 */
         default:
           break;
       }
     }
     EEPCnt++;       /* 下一個參數 */
   }
#endif  /* EnEEPROM */
}

/*** (c) 2005  佛山菱電 **************************** END OF FILE *************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品入口| 亚洲三级免费电影| 奇米色一区二区三区四区| 国产一区二区免费视频| 欧美亚洲自拍偷拍| 中文字幕不卡在线观看| 老司机精品视频在线| 欧美精品xxxxbbbb| 依依成人精品视频| caoporn国产一区二区| 久久众筹精品私拍模特| 国产欧美一区二区精品性| 亚洲欧美激情视频在线观看一区二区三区 | 精品视频免费看| 国产欧美综合在线观看第十页| 日韩成人精品在线| 欧美在线观看一二区| 日本一区二区三区久久久久久久久不| 国产无遮挡一区二区三区毛片日本| 亚洲午夜精品网| 色综合久久99| 亚洲人成在线观看一区二区| 丰满放荡岳乱妇91ww| 久久你懂得1024| 黄色成人免费在线| 精品福利一区二区三区免费视频| 日韩精品免费视频人成| 欧美巨大另类极品videosbest| 一级女性全黄久久生活片免费| 色综合激情久久| 亚洲嫩草精品久久| 在线看国产日韩| 亚洲综合另类小说| 欧美视频在线一区二区三区| 天天综合日日夜夜精品| 欧美一区二区三区电影| 美洲天堂一区二卡三卡四卡视频| 日韩一级大片在线| 国模少妇一区二区三区| 国产亚洲精久久久久久| 成人黄动漫网站免费app| 亚洲视频一区在线观看| 在线精品国精品国产尤物884a| 亚洲靠逼com| 在线观看91av| 欧美三级电影精品| 日本美女一区二区| 久久久久久亚洲综合影院红桃| 成人黄色在线视频| 亚洲欧美日韩国产综合在线| 欧美日韩视频在线第一区| 久久国产成人午夜av影院| 在线区一区二视频| 欧美一区二区三区四区高清| 欧美在线短视频| 久久精品国产亚洲一区二区三区| 亚洲午夜久久久| 午夜视频在线观看一区二区三区 | 精品欧美久久久| 欧美日韩国产电影| 在线观看视频91| 91丨porny丨国产| 成人精品免费看| 国产一本一道久久香蕉| 美腿丝袜在线亚洲一区| 亚洲成人久久影院| 亚洲国产精品影院| 亚洲午夜在线视频| 亚洲香蕉伊在人在线观| 亚洲成av人片在线观看| 亚洲午夜久久久久久久久电影院| 一区二区激情小说| 亚洲一区二区欧美| 亚洲高清免费在线| 亚洲国产精品久久艾草纯爱| 亚洲网友自拍偷拍| 午夜精品久久久久久| 日韩中文字幕亚洲一区二区va在线| 亚洲一区二区在线免费观看视频| 亚洲黄一区二区三区| 樱花影视一区二区| 亚洲福利一区二区| 蜜臀av一级做a爰片久久| 美腿丝袜亚洲色图| 国产在线精品免费av| 国产精品亚洲人在线观看| 成人黄色av电影| 色国产精品一区在线观看| 欧美亚男人的天堂| 91精品国产全国免费观看| 日韩欧美亚洲国产精品字幕久久久| 日韩视频中午一区| 久久夜色精品国产噜噜av | 国产精品久久午夜| 亚洲免费电影在线| 午夜精品一区二区三区三上悠亚| 青青草一区二区三区| 国产一区二区不卡在线| 成人性生交大片免费看中文| 91免费国产在线观看| 欧美三级在线播放| 2020国产精品| 亚洲男人都懂的| 免费久久精品视频| 成人av先锋影音| 欧美精品色一区二区三区| 亚洲色图欧美激情| 日日摸夜夜添夜夜添精品视频| 久久国产尿小便嘘嘘| 99久久免费精品高清特色大片| 欧美伊人久久大香线蕉综合69 | 成人免费福利片| 欧美视频一区在线观看| 久久综合久久综合久久| 亚洲精品欧美激情| 激情文学综合插| 91视频免费看| 日韩欧美久久一区| 亚洲私人影院在线观看| 麻豆一区二区在线| 一本大道久久a久久精品综合| 欧美一个色资源| 亚洲视频你懂的| 国产一区亚洲一区| 欧美日韩一区二区电影| 国产欧美日韩在线视频| 午夜精品久久久久影视| 成人av电影在线网| 欧美变态tickling挠脚心| 亚洲精品你懂的| 岛国av在线一区| 日韩欧美国产精品一区| 亚洲精品日韩一| 成人黄色免费短视频| 亚洲精品在线三区| 日韩精品亚洲一区二区三区免费| 成人福利视频网站| 欧美mv日韩mv国产网站| 水野朝阳av一区二区三区| 91亚洲国产成人精品一区二区三| 精品嫩草影院久久| 蜜桃91丨九色丨蝌蚪91桃色| 在线视频一区二区三| 国产精品久久久久7777按摩| 精品一区二区免费看| 欧美日韩国产美| 一区二区三区高清不卡| caoporn国产精品| 欧美经典一区二区三区| 激情文学综合丁香| 精品欧美久久久| 美女看a上一区| 91精品在线一区二区| 亚洲第一av色| 欧美日韩国产另类一区| 亚洲成人av在线电影| 欧美性淫爽ww久久久久无| 一区二区三区中文免费| 色视频欧美一区二区三区| 亚洲欧美另类小说视频| 91色porny在线视频| 综合在线观看色| 99re热这里只有精品视频| 亚洲欧美另类小说| 在线日韩国产精品| 午夜伦理一区二区| 日韩三级av在线播放| 看片的网站亚洲| 精品欧美一区二区三区精品久久| 久久精品理论片| 亚洲精品在线观看网站| 高清成人免费视频| 蜜桃视频免费观看一区| 日本道精品一区二区三区| 亚洲精品视频自拍| 欧美极品少妇xxxxⅹ高跟鞋| 成人永久aaa| 亚洲欧洲日韩综合一区二区| 色哟哟精品一区| 亚洲国产精品自拍| 日韩西西人体444www| 国产主播一区二区三区| 亚洲国产高清在线观看视频| av在线一区二区三区| 亚洲综合丝袜美腿| 欧美二区乱c少妇| 国产一区亚洲一区| 1024精品合集| 在线播放一区二区三区| 国产一区二区三区在线观看精品| 国产日产欧美一区| 97se亚洲国产综合在线| 天天综合网天天综合色| 久久伊人蜜桃av一区二区| av在线综合网| 日欧美一区二区| 国产精品麻豆久久久| 欧美三级韩国三级日本一级| 狂野欧美性猛交blacked| 中文字幕一区三区|