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

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

?? scom.c

?? 完整的空調控制器程序
?? C
字號:
/**************** (c) 2005   佛山菱電 *****************************************
PROJECT  : AUX VRV
COMPILER : AVR GCC/ICC
MODULE   : scom.c
VERSION  : 1.0.0
DATE     : 2006/01/02
AUTHOR   : 朱坤
DESCRIPTION : 與外機通信(T0)

MODIFICATIONS :
******************************************************************************/
#include "scom.h"
#include "ports.h"
#include "main.h"
#include "fan.h"
#include "adc.h"
#include "pzf.h"

#ifndef EnSTYLE5

const u8 SCom_SM_Tab[] ={0x00,0x03,0x01,0x09};

u8 ScSt0Cnt;           /* 低電平計時 */
u8 ScInHiCnt;          /* 高電平計時 */
u8 * ScByteCnt;        /* 字節計數 */
u8 ScBitCnt;           /* 位計數 */
u8 ScFlag;             /* 標志位 */
#define fScRxOk   7
#define fScTxRxSc 6
#define fScTx     5          /* 1: Tx, 0: Rx  */
#define fScTxLo   4          /* 1: 高電平標志 */

u8 ScBufAdr[14];       /* 緩沖區(14字節) */

/* 發送監控計時, 若內機處于發送狀態超時,強制為接收狀態 */
u8 ScComTm;
/* 外機通信故障計時 */
u8 ScMonCnt;

/*-----------------------------------------------------------------------------
ROUTINE NAME : TIMB_Int
INPUT/OUTPUT : None

DESCRIPTION  : timer B Interrupt Service Routine

COMMENTS     : 外機收發 0.256mS
-----------------------------------------------------------------------------*/
#ifdef AVRGCC
SIGNAL(SIG_OUTPUT_COMPARE0)
#else
#pragma interrupt_handler TIMB_Int:iv_TIMER0_COMP
void TIMB_Int(void)
#endif
{                                      /* 三型外機通信處理 */
    if (ValBit(ScFlag,fScTx)){         /* 1: 發送 */
      if (ValBit(ScFlag,fScTxLo)){     /* 1: 高電平標志 */
        ClrBit(ScFlag,fScTxLo);
        SetBit(pTx,pbTx);              /* 低電位 */
        if (ValBit(ScFlag,fScTxRxSc)){
          TBOC1HR += 768/32;           /* 0.768 mS */
        } else {
          TBOC1HR += 6400/32;          /* 6.4 mS */
        }
      } else {
        SetBit(ScFlag,fScTxLo);
        ClrBit(pTx,pbTx);              /* 高電位 */
        if (ValBit(ScFlag,fScTxRxSc)){
          if (ScByteCnt == &ScBufAdr[14]) ScFlag = 0;
          if ((u8)(*ScByteCnt & ScBitCnt) == 0){
            OCR0 += 768/32;            /* 0.768 mS */
          } else {
            OCR0 += 3072/32;           /* 3.072 mS */
          }
          if ((ScBitCnt <<= 1) == 0){
            ScBitCnt = 1;
            ScByteCnt++;
          }
        } else {
          OCR0 += 6400/32;             /* 6.4 mS */
          SetBit(ScFlag,fScTxRxSc);
          ScBitCnt = 1;
          ScByteCnt = ScBufAdr;
          ScComTm = 0;                 /* 監控計時 */
        }
      }
    } else {                           /* 0.256mS 三型外機接收 */
      OCR0 += 256/32;                  /* 0.256 mS */
      if (!ValBit(ScFlag,fScRxOk)){    /* 尚未處理,不接收 */
        ClrBit(pTx,pbTx);              /* 準備接收 */
        if (ValBit(pRx,pbRx)||ValBit(pRx,pbRx)){
          ScSt0Cnt = 0;
          if (++ScInHiCnt == 0) ScFlag = 0;
          //++ScInHiCnt;
        } else {
          if (++ScSt0Cnt > 0x12) ScFlag = 0; /* 4.864mS */
          if (ValBit(ScFlag,fScTxRxSc)){
             /* 0.256mS - 4.608mS  */
             if ((ScInHiCnt != 0) && (ScInHiCnt <= 0x12)){
               /* 1.792mS */
               if (ScInHiCnt > 0x07) *ScByteCnt |= ScBitCnt;
               if ((ScBitCnt<<=1) == 0){
                 ScBitCnt = 1;
                 if (ScByteCnt == &ScBufAdr[5]) { /* 接收6字節 */
                   ScFlag = (u8)(1<<fScRxOk);
                 } else {
                   *++ScByteCnt = 0;     /* 準備接收下一個字節 */
                 }
               }
             }
          } else if ((ScInHiCnt >= 0x10) && (ScInHiCnt < 0x23)){
            /* 6.4mS 引導脈沖 4.096mS - 8.96mS */
            SetBit(ScFlag,fScTxRxSc);
            ScBitCnt = 1;
            ScByteCnt = ScBufAdr;
            ScBufAdr[0] = 0;
            ScComTm = 0;
          }
          ScInHiCnt = 0;
        }
      }
    }
}

void Init_TIMB(void)
{
   /* FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20 */
   TCCR0 = 0x05;       /* Normal, OC0 Disconnected, 1:256 */
   OCR0 = (u8)(256/32);/* 設置下一次中斷時間 0.256 */
   TCNT0 = 0x00;
   //ScFlag = 0;       /* 清除所有標志 */
   UCSRB = 0x00;       /* 禁止 SCI */

   //TIFR = 0x0FF;     /* 清除所有中斷 */
   //TIMSK &= (u8)(1 << TOIE0);
   TIMSK |= (u8)(1 << OCIE0);
   //ClrBit(pTx,pbTx); /* 準備接收 */
}

/*-----------------------------------------------------------------------------
;① 室外機→室內機
;室外機給室內機發送3個字節的數據,加反碼共6個字節。
;第一字節:室外機故障標志反碼;第二字節:室外機故障標志正碼
; D0   室外機壓縮機排氣溫度過高   (=0 正常;=1 故障)
; D1   缺氟或換向閥故障           (=0 正常;=1 故障)
; D2   室外機交流輸入電流過大     (=0 正常;=1 故障)
; D3   室外機交流輸入電流采樣異常 (=0 正常;=1 異常)
; D4   室外機直流母線電壓異常     (=0 正常;=1 異常)
; D5   室內機總功率過大           (=0 無效;=1 有效)
; D6   室外機傳感器故障           (=0 正常;=1 故障)
; D7   室外機變頻器模塊保護故障   (=0 正常;=1 故障)
;第三字節:室外機狀態及故障標志反碼,第四字節:室外機狀態及故障標志正碼
; D0   制熱除霜工作狀態位       1= 除霜狀態    0= 非除霜狀態
; D1   制熱工作狀態             1= 有效        0= 無效
; D2   壓縮機啟停狀態位         1= 啟動        0= 停止
; D3   室外風機啟停狀態位       1= 啟動        0= 停止
; D4   允許室內機啟動位         1= 允許啟動    0= 不允許啟動
; D5   保留
; D6   該通道不存在或通訊故障   1= 不存在或故障; 0= 正常
; D7   室外機三次故障停機       1= 故障           0= 正常
;第五字節:膨脹閥開度反碼,第六字節:膨脹閥開度正碼。
;② 室內機→室外機
;室內機給室外機發送7個字節的數據,加反碼共為14個字節。
;第一字節:設定室內溫度正碼;      第二字節:設定室內溫度反碼;
;第三字節:實測室內環境溫度正碼;  第四字節:實測室內環境溫度反碼;
;第五字節:實測室內機盤管溫度正碼;第六字節:實測室內機盤管溫度反碼
;第七字節:命令狀態字節正碼;      第八字節:命令狀態字節反碼
;命令狀態字內容:
;  D1、D0 = 00  通風或待機狀態
; 01  制冷
; 10  保留
; 11  制熱
; D2  保留
; D3:除濕狀態位 "1"要求除濕,"0" 不要求除濕
; D7、D6、D5、D4  = 1111 系統進入商檢狀態
;  = 1100 系統進入柜機抽檢狀態
;  = 1101 系統進入掛機抽檢狀態
;  = 0001 微風
;  = 0010 低風
;  = 0100 中風
;  = 1000 高風
;第九字節:  實測室內盤管細管溫度正碼;  第十字節:  實測室內盤管細管溫度反碼;
;第十一字節:實測室內盤管粗管溫度正碼;  第十二字節:實測室內盤管粗管溫度反碼;
;第十三字節:室內機功率(匹)正碼;      第十四字節:室內機功率反碼。
-----------------------------------------------------------------------------*/
void ScCom_Sub(void)
{
   if (ScMonCnt > 60){              /* 外機通信故障監控計時(秒) */
     SetBit(Errorflg,fSComErr);     /* 外機通信故障 */
     OutSideValve = 0;              /* 關閥 */
   }
   if (ScComTm == 255){             /* 外機通信監控計時 */
     ScFlag = 0;                    /* 清除所有標志 */
     ScComTm = 0;
     ClrBit(pTx,pbTx);              /* 準備接收 */
   }

   if (ValBit(ScFlag,fScRxOk)){     /* 1: 接收Ok */
      if (((ScBufAdr[0]|ScBufAdr[1]) == 0x0FF) &&
          ((ScBufAdr[2]|ScBufAdr[3]) == 0x0FF) &&
          ((ScBufAdr[4]|ScBufAdr[5]) == 0x0FF)){
        ScMonCnt = 0;                /* 與外機通信故障計時 */
        ClrBit(Errorflg,fSComErr);   /* 1:與外機通信故障  */
        OutSideErr[0] = ScBufAdr[1]; /* 外機故障 */
        OutDevStu[0] = ScBufAdr[3];  /* 外機狀態 */
        /* 膨脹閥開度 */
        OutSideValve =(u16)(((ScBufAdr[5] > (PZFMAX >> 1))? (PZFMAX >> 1): ScBufAdr[5]) << 1);

        /* 在模式沒有發送到外機之前,先清除允許標志 */
        if (!ValBit(Sysflag,fModeflag)){
          ClrBit(OutDevStu[0],fRunEnable);
          ClrBit(OutDevStu[0],fOutDeforst);
        }
        if (ValBit(OutDevStu[0],fRunEnable)) ClrBit(Sysflag2,fRequest);

        ScComTx_Sub();                    /* 準備發送數據 */

        OCR0 += (u8)(0x0FF);             /* 間隔時間(15.3mS) */
        ClrBit(pTx,pbTx);                 /* 發送準備 */
        ScFlag = (1<<fScTx)|(1<<fScTxLo); /* 清除所有標志 */
      }
      ClrBit(ScFlag,fScRxOk);             /* 清除標志 */
   }
}

void ScComTx_Sub(void)                    /* 準備發送數據 */
{
   ScBufAdr[0] =(u8)(SetupTp - 0x80);     /* Ts */

   if (ValBit(Errorflg,fAmbientErr)){
     ScBufAdr[2] = 0x80;                  /* Tr */
   } else {
#ifdef ChigoXG1
     if ((RunMode & MODEMASK) == MODEHEAT){
#ifdef ChigoXG1Set
       ScBufAdr[2] = (u8)(AmbientTp - ChigoXG1Set);
#else
       ScBufAdr[2] = (u8)(AmbientTp - SetOffset);
#endif
     } else {
       ScBufAdr[2] = (u8)(AmbientTp - 0x80);
     }
#else
     ScBufAdr[2] = (u8)(AmbientTp - 0x80);
#endif

     /* 強制運行時,修改設定溫度,不處理補償溫度 */
     if (ValBit(Sysflag,fContinue)){
       if ((RunMode & MODEMASK) == MODEHEAT){
         if (AmbientTp > 0x7B){
           ScBufAdr[0] = (u8)(AmbientTp + 0x85);
         } else {
           ScBufAdr[0] = 0x00;    /* Ts = Tr+5 */
         }
       } else if (((RunMode & MODEMASK) == MODECOOL)||
                  ((RunMode & MODEMASK) == MODEDRY)){
         if (AmbientTp > 0x85){
           ScBufAdr[0] = (u8)(AmbientTp + 0x7B);
         } else {
           ScBufAdr[0] = 0x00;    /* Ts = Tr-5 */
           ScBufAdr[2] = 0x05;
         }
       }     }
   }

   /* 盤管中點溫度 */
   ScBufAdr[4] = (u8)(ValBit(Errorflg,fTubeMidErr)? 0x80 : TubeMidTp - 0x80);

   /* 內機模式 - 不開機,不發送模式 */
   SetBit(Sysflag,fModeflag);      /* 模式發送標志 */
   ScBufAdr[6] = (u8)(ValBit(RunMode,fSysOn)? SCom_SM_Tab[RunMode & 0x03] : 0);

   /* 盤管入口/出口溫度 */
   ScBufAdr[8] = (u8)(ValBit(Errorflg,fTubeInErr)? 0x80 : TubeInTp - 0x80);
   ScBufAdr[10] = (u8)(ValBit(Errorflg,fTubeOutErr)? 0x80 : TubeOutTp - 0x80);

   /* 內機功率 */
   ScBufAdr[12] = (u8)(ValBit(Sysflag,fPower) ? PowerConst : 0);
   if (ValBit(RunMode,fSysOn) && ValBit(Sysflag2,fRequest)){
     ScBufAdr[12] = PowerConst;
     if ((RunMode & MODEMASK) == MODEHEAT){
       ScBufAdr[2] = (u8)(ScBufAdr[0] - 1);   /* Tr = Ts-1 */
     } else if (((RunMode & MODEMASK) == MODECOOL)||
                ((RunMode & MODEMASK) == MODEDRY)){
       ScBufAdr[2] = (u8)(ScBufAdr[0] + 1);   /* Tr = Ts+1 */
     }
   }

   /* 設置反碼 */
   ScBufAdr[1] = (u8)(255 - ScBufAdr[0]);
   ScBufAdr[3] = (u8)(255 - ScBufAdr[2]);
   ScBufAdr[5] = (u8)(255 - ScBufAdr[4]);
   ScBufAdr[7] = (u8)(255 - ScBufAdr[6]);
   ScBufAdr[9] = (u8)(255 - ScBufAdr[8]);
   ScBufAdr[11] = (u8)(255 - ScBufAdr[10]);
   ScBufAdr[13] = (u8)(255 - ScBufAdr[12]);
}

#endif

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷国产精品| 欧美日韩日日骚| 91浏览器在线视频| 91精品福利在线一区二区三区| 久久久久久久久久久电影| 亚洲精品少妇30p| 高清国产一区二区三区| 精品国产自在久精品国产| 一区二区三区精密机械公司| 国产精品资源在线观看| 欧美巨大另类极品videosbest | 欧美日韩亚州综合| 国产精品欧美久久久久无广告| 日韩影院精彩在线| 色婷婷亚洲一区二区三区| 2欧美一区二区三区在线观看视频| 亚洲一级二级三级在线免费观看| www.欧美精品一二区| 久久久久久久久久久久久久久99| 日韩成人午夜电影| 欧美人妖巨大在线| 亚洲国产精品久久久男人的天堂 | 久久综合丝袜日本网| 午夜a成v人精品| 欧美综合视频在线观看| 亚洲欧美怡红院| 99免费精品在线| 亚洲欧美在线视频| 91网站黄www| 1024国产精品| 91污片在线观看| 亚洲视频在线一区观看| 91免费观看国产| 亚洲欧美日韩一区二区| 色老综合老女人久久久| 国产精品成人一区二区艾草| 丁香婷婷综合网| 中文字幕一区二区三区在线不卡 | 日本成人在线一区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美高清视频不卡网| 亚洲图片欧美一区| 欧美一级免费大片| 黄色日韩三级电影| 国产精品欧美综合在线| 91同城在线观看| 亚洲午夜免费福利视频| 欧美精品粉嫩高潮一区二区| 久久精品国产亚洲aⅴ| 欧美激情综合五月色丁香小说| 成人污视频在线观看| 亚洲色图视频网| 欧美三电影在线| 美女视频一区二区三区| 久久人人97超碰com| 色综合久久精品| 麻豆免费看一区二区三区| 久久免费视频一区| 色综合网站在线| 久久精品国产精品亚洲红杏| 国产精品色在线观看| 欧美日韩国产影片| 国产一区二区三区久久久| 亚洲免费观看高清完整版在线| 777a∨成人精品桃花网| 成人教育av在线| 日韩精品乱码免费| 国产精品萝li| 日韩一级精品视频在线观看| 成人精品一区二区三区中文字幕| 一区二区三区精品在线| 国产亚洲精品bt天堂精选| 在线看日韩精品电影| 久草在线在线精品观看| 有码一区二区三区| 久久久久久久久免费| 在线电影院国产精品| 成人精品鲁一区一区二区| 日韩精品视频网| 亚洲人成亚洲人成在线观看图片 | 国产精品丝袜久久久久久app| 欧美在线观看一二区| 国产精品一区2区| 视频一区国产视频| 日韩一区在线看| 久久精品欧美一区二区三区麻豆| 欧美日韩大陆一区二区| 91色.com| 成人免费视频一区二区| 国产精品原创巨作av| 日日夜夜一区二区| 亚洲一区免费视频| 国产精品久99| 中文字幕精品一区二区精品绿巨人| 日韩小视频在线观看专区| 欧美日韩一区二区在线观看视频| 成人免费三级在线| 国产精品自拍在线| 韩国v欧美v日本v亚洲v| 奇米精品一区二区三区四区| 亚洲国产日韩a在线播放| 亚洲精选在线视频| 最近日韩中文字幕| 日韩精品专区在线影院重磅| 在线影院国内精品| 91精品福利在线| 日本韩国欧美一区二区三区| 91在线观看美女| 色综合中文字幕国产 | 国产欧美日韩精品在线| xfplay精品久久| 欧美大片一区二区| 欧美一区二区福利视频| 91精品国产综合久久精品麻豆| 7777精品伊人久久久大香线蕉 | 精品国产91洋老外米糕| 欧美精品高清视频| 欧美一区二区三区影视| 欧美精三区欧美精三区| 欧美日韩成人激情| 日韩欧美一区二区不卡| 欧美r级在线观看| 久久网这里都是精品| 国产女主播视频一区二区| 国产欧美一区二区精品秋霞影院| 久久精品亚洲一区二区三区浴池 | 日韩欧美一区二区久久婷婷| 日韩三级精品电影久久久| 日韩欧美一区二区视频| 久久综合色鬼综合色| 亚洲国产高清aⅴ视频| 亚洲欧美视频一区| 亚洲成va人在线观看| 麻豆成人在线观看| 国产99久久久国产精品潘金| 99riav一区二区三区| 欧美三级电影在线观看| 欧美成人乱码一区二区三区| 国产免费成人在线视频| 最新国产の精品合集bt伙计| 亚洲高清免费视频| 国内精品伊人久久久久av一坑| 成人av在线资源| 欧美另类变人与禽xxxxx| 亚洲精品在线观看视频| 国产精品欧美极品| 婷婷一区二区三区| 国产精品亚洲一区二区三区在线| 99久久综合狠狠综合久久| 欧美日韩色一区| www国产亚洲精品久久麻豆| 亚洲精品国产一区二区精华液 | 国产精品小仙女| 欧美色大人视频| 日本一区二区三区高清不卡| 亚洲国产乱码最新视频| 国产一区二区精品久久| 在线观看视频欧美| 久久久高清一区二区三区| 一区二区三区加勒比av| 国产成人综合在线| 欧美一级二级在线观看| 亚洲男人的天堂一区二区| 激情综合网激情| 欧美精品1区2区3区| 日韩一区中文字幕| 国产精品影视在线| 欧美日韩精品系列| 中文字幕日韩欧美一区二区三区| 蜜臂av日日欢夜夜爽一区| 在线视频一区二区三| 中文字幕欧美日本乱码一线二线| 亚洲国产视频网站| av综合在线播放| 久久久99久久精品欧美| 毛片av一区二区三区| 在线免费观看日韩欧美| 欧美激情一区不卡| 国产精品77777| 精品美女被调教视频大全网站| 亚洲高清一区二区三区| 一本大道久久a久久精二百| 国产欧美日韩在线| 精品一区二区精品| 日韩一卡二卡三卡国产欧美| 亚洲欧美偷拍卡通变态| caoporn国产精品| 中文字幕中文在线不卡住| 国产.欧美.日韩| 国产香蕉久久精品综合网| 久久99精品一区二区三区| 欧美成人一区二区三区在线观看| 日韩高清一区二区| 欧美日韩成人在线| 日产国产高清一区二区三区| 91精品综合久久久久久| 天天色天天爱天天射综合| 欧美日本不卡视频| 视频一区二区三区入口| 欧美一二区视频|