亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美日韩国产高清一区二区三区 | 日日欢夜夜爽一区| 另类综合日韩欧美亚洲| 国产xxx精品视频大全| 在线观看网站黄不卡| 欧美国产禁国产网站cc| 日本视频在线一区| 欧美三级电影精品| 1024国产精品| 国产suv精品一区二区883| 欧美一区二区精品久久911| 亚洲裸体在线观看| 成人精品国产福利| 久久影院午夜论| 蜜臀久久久99精品久久久久久| 91片黄在线观看| 国产精品拍天天在线| 久久精品99国产精品| 欧美日韩激情在线| 亚洲综合免费观看高清完整版在线 | 久久久久久久久久久久久女国产乱 | 国产日韩欧美高清| 国产在线精品不卡| 欧美一级二级在线观看| 亚洲国产精品久久艾草纯爱| 91麻豆免费看| 国产精品美女久久久久av爽李琼| 韩国三级电影一区二区| 91精品国产综合久久久蜜臀粉嫩 | 国产校园另类小说区| 国产资源精品在线观看| 精品少妇一区二区三区在线播放 | 欧美亚洲国产bt| 亚洲女子a中天字幕| 99精品热视频| 亚洲精品视频在线观看免费| 99久久精品国产精品久久| 中文字幕av一区二区三区高| 成人性生交大片免费看在线播放 | 三级一区在线视频先锋| 欧美精品tushy高清| 日韩高清不卡一区二区三区| 在线播放一区二区三区| 天天综合日日夜夜精品| 日韩色视频在线观看| 久久www免费人成看片高清| 亚洲精品一区二区三区99| 国产精品亚洲成人| 欧美国产日韩亚洲一区| 99r国产精品| 亚洲电影一区二区| 欧美成va人片在线观看| 国产精品69毛片高清亚洲| 最新国产成人在线观看| 欧美日韩在线播放三区四区| 免费三级欧美电影| 久久精品日产第一区二区三区高清版 | 久久色在线观看| 99久久久国产精品免费蜜臀| 亚洲国产一区二区在线播放| 日韩一区二区免费在线观看| 国产一区二区福利视频| 亚洲精品自拍动漫在线| 日韩精品中文字幕在线一区| 99天天综合性| 美女一区二区在线观看| 国产精品免费免费| 欧美一区午夜精品| 国产成人免费在线观看不卡| 一级日本不卡的影视| 欧美电影免费观看高清完整版在线观看| 美女一区二区视频| 亚洲啪啪综合av一区二区三区| 欧美老肥妇做.爰bbww| 国产精品亚洲人在线观看| 亚洲小说欧美激情另类| 国产亚洲污的网站| 欧美亚洲一区二区在线观看| 久久精品国产亚洲a| 亚洲男同1069视频| 久久精品夜夜夜夜久久| 欧美久久一区二区| 91亚洲精品乱码久久久久久蜜桃| 日本aⅴ精品一区二区三区| 亚洲婷婷在线视频| 国产亚洲短视频| 91精品国产综合久久久久久久| 成人高清免费在线播放| 麻豆精品久久久| 亚洲高清视频的网址| 国产精品久久久久久亚洲毛片| 欧美一级日韩一级| 欧美午夜不卡视频| 本田岬高潮一区二区三区| 久久er99热精品一区二区| 日韩一区精品视频| 一区二区三区加勒比av| 国产精品久久久久精k8| 久久久久久久久久久久电影| 日韩欧美亚洲一区二区| 欧美日韩三级视频| 欧美性淫爽ww久久久久无| 91在线视频网址| 成人免费毛片aaaaa**| 麻豆成人91精品二区三区| 午夜国产精品一区| 亚洲午夜久久久久中文字幕久| 国产精品护士白丝一区av| 欧美韩国日本综合| 国产精品美日韩| 国产精品免费人成网站| 国产精品国产精品国产专区不蜜| 久久精品亚洲精品国产欧美| 国产亚洲综合在线| 国产日本一区二区| 国产精品天天看| 国产精品进线69影院| 亚洲色图丝袜美腿| 一区二区视频在线看| 亚洲美女少妇撒尿| 亚洲午夜久久久久久久久久久| 亚洲国产美国国产综合一区二区| 亚洲永久免费视频| 亚洲妇熟xx妇色黄| 免费高清成人在线| 国产精品影视网| 国产成人高清在线| 97久久超碰国产精品| 欧美性欧美巨大黑白大战| 欧美日韩和欧美的一区二区| 6080国产精品一区二区| 欧美成人一级视频| 国产午夜亚洲精品羞羞网站| 中文在线一区二区 | 久久狠狠亚洲综合| 国产高清不卡二三区| 色诱亚洲精品久久久久久| 欧美三级视频在线| 欧美日高清视频| 久久丝袜美腿综合| 一区二区三区**美女毛片| 日韩av电影天堂| 国产99久久久国产精品| 色嗨嗨av一区二区三区| 91精品国产综合久久蜜臀| 国产欧美日韩在线| 午夜精彩视频在线观看不卡| 国产一区在线不卡| 91黄视频在线| 日韩一区二区在线播放| 中文字幕乱码久久午夜不卡| 午夜精品一区二区三区免费视频| 久久99久久久欧美国产| 一本到一区二区三区| 欧美大片顶级少妇| 亚洲精品视频一区| 国产一区二区三区在线观看免费视频| 91片在线免费观看| 欧美精品一区二区在线播放| 亚洲欧美日韩国产一区二区三区 | 一区二区三区欧美在线观看| 麻豆91免费看| 色一情一乱一乱一91av| 日韩美一区二区三区| 亚洲午夜久久久久中文字幕久| 国产成人精品一区二区三区网站观看| 欧美日韩精品欧美日韩精品一综合| 国产视频一区在线观看| 美女一区二区三区在线观看| 色综合视频一区二区三区高清| 精品处破学生在线二十三| 亚洲国产精品一区二区久久| 国产91精品精华液一区二区三区| 欧美日韩国产另类一区| 成人欧美一区二区三区1314| 国产一区二区三区免费| 4438x成人网最大色成网站| 日韩一区有码在线| 国产成人在线免费| 精品日产卡一卡二卡麻豆| 亚洲国产欧美一区二区三区丁香婷| 国产丶欧美丶日本不卡视频| 日韩午夜av电影| 午夜伦理一区二区| 欧美日韩一区小说| 亚洲欧美日韩成人高清在线一区| 精品无人码麻豆乱码1区2区 | 色8久久人人97超碰香蕉987| 国产欧美日韩亚州综合| 国产一区在线视频| 亚洲精品一区二区三区精华液| 裸体歌舞表演一区二区| 欧美一卡2卡3卡4卡| 日韩精品亚洲专区| 91麻豆精品国产| 日本一区中文字幕| 这里是久久伊人| 日韩精品成人一区二区在线| 在线不卡一区二区| 久久精品久久久精品美女|