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

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

?? ds18b20.c

?? 溫度傳感器DS18B20的功能實現
?? C
?? 第 1 頁 / 共 2 頁
字號:
  unsigned char res_t;    // Resolution
  unsigned int low_t;     // Dept. Dot. use
  
  res_t = * (sct + 4) & 0x60;    // Get resolution from scratchpad data

  if ( Test_Bit (* (sct + 1), 7) )
  {
    * (result + 0) = 0xFF;              // Insignificant, 0x00 is +, 0xFF is -
  }
  else
  {
    * (result + 0) = 0x00;
  }
  
  switch (res_t)
  {  
    case 0x00:    // for 9-bit resolution
      * (result + 1) = * (sct + 0) >> 1;    // Dept. Int.
      * (result + 2) = (* (sct + 0) & 0x01) * 50;  // Dept. Dot.
      break;

    case 0x20:    // for 10-bit resolution
      * (result + 1) = ( (* (sct + 0) >> 2) | (((* (sct + 1)) << 6) & 0x7F) );  // Dept. Int.
      * (result + 2) = (* (sct + 0) & 0x03) * 25;                               // Dept. Dot.
      break;

    case 0x40:    // for 11-bit resolution
      * (result + 1) = ( (* (sct + 0) >> 3) | (((* (sct + 1)) << 5) & 0x7F) );  // Dept. Int.
      low_t = (unsigned int)(* (sct + 0) & 0x07) * 125;                         // Dept. Dot.
      low_t /= 10;
      * (result + 2) = (unsigned char)low_t;
      break;

    case 0x60:    // for 12-bit resolution
      * (result + 1) = ( (* (sct + 0) >> 4) | (((* (sct + 1)) << 4) & 0x7F) );  // Dept. Int.
      low_t = (unsigned int)(* (sct + 0) & 0x0F) * 625;                         // Dept. Dot.
      low_t /= 100;
      * (result + 2) = (unsigned char)low_t;
       break;
   }    // end switch (res_t)   

}
//--------------------------------------------------------------------------------------------------

//////////  Read the value of temperature from DS18B20. Match passed
            //  Input:
                    //  
                        // * Value: will storage temperature.
                            // * (Value + 0): = 0x00 is above 0, = 0xFF is lower 0
                            // * (Value + 1): Int. of temperature value
                            // * (Value + 2): dot. of temperature value, 0x00 to 0x63 (0.00 to 0.99)
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
unsigned char DS18B20_Single_Read_Temperature (unsigned char * Value)
{
 // unsigned char cpu_sr;
  unsigned char sct[9];   // For temp storage scratchpad data
 
  Enter_Critical ();
 
//  Start convert cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
  Value[0]=1;
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0xCC);            // Skip ROM command
  DS18B20_Write_Byte (0x44);            // Convert temperature command
  
  Exit_Critical ();
  Soft_Delay_ms (751);                  // Wait for convert complete
  Enter_Critical ();
//  Cycle end
  
//  Start read SCT cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
  Value[0]=2;
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0xCC);            // Skip ROM command
  DS18B20_Write_Byte (0xBE);            // Read SCT
  DS18B20_Multi_Read_Byte (sct, 9);     // Read scratchpad data, 8 Bytes + 1 Byte CRC

//  Cycle end
  
  if (DS18B20_SCT_Check (sct) != 1)     // Check scratchpad with CRC and CONFIG register
  {
  Value[0]=3;
    Exit_Critical ();
    return 0;
  }
 
  DS18B20_Temperature_Format_Transfer (sct, Value);
  
  Exit_Critical ();
  return 1;
}
//--------------------------------------------------------------------------------------------------



//////////  Read the Laser ROM from from DS18B20  //  Notice: Only for single device on 1-Wire Bus 
            //  Input:
                    // * Value: the point for UID data storage. LSB first, MSB last
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
__monitor unsigned char DS18B20_Single_Read_ROM (unsigned char * Value)
{
  unsigned char i;
  unsigned char rom_temp[8];
  
  if (DS18B20_Master_Reset () != 1)   // Master reset and check, error to return 0
  {
    return 0;
  }
  
  DS18B20_Write_Byte (0x33);    // 0x33 is Read ROM command
  
  DS18B20_Multi_Read_Byte (rom_temp, 8);
  
  if ( DS18B20_UID_Check (rom_temp) != 1)
  {
    return 0;
  }
    
  for (i = 0; i < 8; i++)
  {
    * (Value + i) = rom_temp[i];    // CRC OK, Write back result
  }
  
  return 1;
}
//--------------------------------------------------------------------------------------------------


//////////  Only convert temperature without delay. Single
            //  Input:
                    //  None
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
unsigned char DS18B20_Single_Only_Convert_Temperature (void)
{
  //unsigned char cpu_sr;
 
  Enter_Critical ();
 
//  Start convert cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0xCC);            // Skip ROM command
  DS18B20_Write_Byte (0x44);            // Convert temperature command
  
  Exit_Critical ();
  return 1;
}
//--------------------------------------------------------------------------------------------------


//////////  Only read SCT data from DS18B20. Single
            //  Input:
                    //  
                        // * Value: will storage temperature.
                            // * (Value + 0): = 0x00 is above 0, = 0xFF is lower 0
                            // * (Value + 1): Int. of temperature value
                            // * (Value + 2): dot. of temperature value, 0x00 to 0x63 (0.00 to 0.99)
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
unsigned char DS18B20_Single_Only_Read_Temperature (unsigned char * Value)
{
 // unsigned char cpu_sr;
  unsigned char sct[9];   // For temp storage scratchpad data
 
  Enter_Critical ();
 
//  Start read SCT cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
  Value[0]=1;
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0xCC);            // Skip ROM command
  DS18B20_Write_Byte (0xBE);            // Read SCT
  DS18B20_Multi_Read_Byte (sct, 9);     // Read scratchpad data, 8 Bytes + 1 Byte CRC

//  Cycle end
  
  if (DS18B20_SCT_Check (sct) != 1)     // Check scratchpad with CRC and CONFIG register
  {
  Value[0]=2;
    Exit_Critical ();
    return 0;
  }
 
  DS18B20_Temperature_Format_Transfer (sct, Value);
  
  Exit_Critical ();
  return 1;
}
//--------------------------------------------------------------------------------------------------



//////////  以指定的ROM去讀溫度
            //  Input:
                    //  
                        // * UID: ROM (8 bytes)
                        // * Value: will storage temperature.
                            // * (Value + 0): = 0x00 is above 0, = 0xFF is lower 0
                            // * (Value + 1): Int. of temperature value
                            // * (Value + 2): dot. of temperature value, 0x00 to 0x63 (0.00 to 0.99)
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
unsigned char DS18B20_UID_Read_Temperature (unsigned char * Value, unsigned char * UID)
{
  //unsigned char cpu_sr;
  unsigned char sct[9];   // For temp storage scratchpad data
 
  Enter_Critical ();
  
  if (DS18B20_UID_Check (UID) != 1)
  {
    Exit_Critical ();
    return 0;
  }
  
//  Start convert cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0x55);            // Match ROM command
  DS18B20_Multi_Write_Byte (UID, 8);
  DS18B20_Write_Byte (0x44);            // Convert temperature command
  
  Exit_Critical ();
  Soft_Delay_ms (751);                  // Wait for convert complete
  Enter_Critical ();
//  Cycle end
  
//  Start read SCT cycle  
  if (DS18B20_Master_Reset () != 1)     // Master reset
  {
    Exit_Critical ();
    return 0;
  }
  DS18B20_Write_Byte (0x55);            // Skip ROM command
  DS18B20_Multi_Write_Byte (UID, 8);

  DS18B20_Write_Byte (0xBE);            // Read SCT
  DS18B20_Multi_Read_Byte (sct, 9);     // Read scratchpad data, 8 Bytes + 1 Byte CRC

//  Cycle end
  
  if (DS18B20_SCT_Check (sct) != 1)     // Check scratchpad with CRC and CONFIG register
  {
    Exit_Critical ();
    return 0;
  }
 
  DS18B20_Temperature_Format_Transfer (sct, Value);
  
  Exit_Critical ();
  return 1;
}
//--------------------------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人精品一区| 日韩欧美123| 国产婷婷色一区二区三区 | 国产自产高清不卡| 蜜桃精品视频在线观看| 91福利在线看| 国产欧美一区视频| 蜜桃91丨九色丨蝌蚪91桃色| 欧美亚洲一区三区| 国产精品久久久久久久浪潮网站 | 国产精品午夜在线| 捆绑调教一区二区三区| 欧美日韩久久一区| 亚洲精品第一国产综合野| 国产91丝袜在线播放| 日韩一区二区三区视频| 亚洲成人动漫av| 日本丶国产丶欧美色综合| 成人免费在线观看入口| 福利视频网站一区二区三区| 精品国产精品一区二区夜夜嗨| 亚洲电影一级片| 91视频在线看| 在线视频一区二区三| 久久婷婷国产综合国色天香| 视频一区二区三区在线| 欧美色成人综合| 亚洲人成7777| 国产一区美女在线| 欧美精品一区二区三区久久久| 亚洲一二三四在线观看| av电影天堂一区二区在线| 久久蜜桃一区二区| 免费在线观看精品| 欧美日韩亚洲不卡| 亚洲久本草在线中文字幕| 成人精品国产免费网站| 国产精品嫩草影院com| 狠狠色丁香久久婷婷综合丁香| 欧美特级限制片免费在线观看| 日韩久久一区二区| 国产成人精品免费一区二区| 亚洲国产岛国毛片在线| 国产经典欧美精品| 国产精品沙发午睡系列990531| 国产精品1024| 国产精品毛片久久久久久久 | 曰韩精品一区二区| 99免费精品在线| 亚洲视频图片小说| av资源站一区| 一区二区三区四区五区视频在线观看| www.欧美日韩| 亚洲男帅同性gay1069| 99综合影院在线| 欧美高清视频不卡网| 青青草伊人久久| 欧美一区二区大片| 国产毛片精品国产一区二区三区| 日韩一级完整毛片| 国产成人精品免费视频网站| 久久九九久久九九| 97久久精品人人爽人人爽蜜臀| 国产精品短视频| 在线观看日韩精品| 亚洲一区二区三区四区在线免费观看 | 亚洲一区二区三区精品在线| 一本一道综合狠狠老| 性欧美疯狂xxxxbbbb| 欧美精品一级二级| 国产一区二区美女诱惑| 国产日韩欧美综合一区| 一本到高清视频免费精品| 樱桃视频在线观看一区| 日韩无一区二区| 国产一区二区按摩在线观看| 日韩免费高清视频| av男人天堂一区| 亚洲精品欧美激情| 欧美成人综合网站| 国产成人精品aa毛片| 亚洲综合色丁香婷婷六月图片| 欧美日韩一区不卡| 国产综合成人久久大片91| 国产精品麻豆久久久| 欧美人与性动xxxx| 另类小说综合欧美亚洲| 中文字幕一区二区三区在线观看| 色哟哟在线观看一区二区三区| 视频一区视频二区中文| 久久综合成人精品亚洲另类欧美| 99久久99精品久久久久久| 一区二区三区蜜桃网| 欧美视频一区二区在线观看| 国产一区二区免费在线| 中文字幕日韩欧美一区二区三区| 欧美一区三区四区| 国产精品一区2区| 亚洲国产日日夜夜| 日韩美女一区二区三区四区| 91理论电影在线观看| 日韩高清电影一区| 国产精品久久久久久久久快鸭| 欧美日韩在线直播| 国产精品123区| 亚洲一区二区三区视频在线| 国产欧美一区二区三区沐欲| 91传媒视频在线播放| 国产成人午夜精品影院观看视频| 亚洲激情自拍视频| 欧美国产精品一区| 欧美日韩视频在线第一区 | 五月婷婷另类国产| 久久这里只有精品视频网| 欧美在线观看你懂的| 国产综合成人久久大片91| 午夜激情久久久| 欧美激情一区二区三区在线| 日韩欧美精品三级| 91网页版在线| 国产激情视频一区二区三区欧美 | 欧美成人国产一区二区| 欧美在线一二三四区| 国产精品影视网| 日本不卡中文字幕| 亚洲欧美日韩一区二区 | 欧美一级夜夜爽| 91免费精品国自产拍在线不卡| 久久99精品一区二区三区| 亚洲综合免费观看高清完整版在线| 亚洲国产精品成人综合| 制服丝袜av成人在线看| 色一情一伦一子一伦一区| 狠狠色综合日日| 麻豆成人久久精品二区三区红 | 欧美一二三区在线观看| 在线观看视频一区二区| 国产91高潮流白浆在线麻豆 | 亚洲免费在线视频一区 二区| 日韩精品影音先锋| 日韩精品一区二区三区在线| 91福利在线播放| 在线观看av一区二区| 国产ts人妖一区二区| 国产精品白丝av| 久久不见久久见免费视频7| 免费成人在线视频观看| 亚洲国产日韩a在线播放性色| 亚洲黄色小说网站| 亚洲欧洲日韩av| 亚洲欧美一区二区在线观看| 久久精品视频在线免费观看| 欧美变态tickle挠乳网站| 欧美精品少妇一区二区三区| 欧美日韩国产bt| 欧美中文字幕不卡| 欧美三级在线播放| 欧美影片第一页| 色综合久久88色综合天天免费| 成人黄动漫网站免费app| 久久超级碰视频| 免费视频一区二区| 日本不卡在线视频| 一区二区在线观看免费视频播放| 国产精品久久久久久久久久久免费看 | 九九**精品视频免费播放| 久久成人免费网| 久久99精品久久久久久国产越南 | 天堂一区二区在线免费观看| 丝袜美腿亚洲色图| 五月婷婷综合在线| 久久爱www久久做| 性欧美疯狂xxxxbbbb| 另类小说欧美激情| 视频一区国产视频| 另类小说视频一区二区| 日产欧产美韩系列久久99| 麻豆免费精品视频| 毛片av一区二区| 喷水一区二区三区| 久久精品国产免费| 久久国内精品自在自线400部| 老司机免费视频一区二区| 日本伊人色综合网| 麻豆国产精品一区二区三区| 国产成a人无v码亚洲福利| 成人看片黄a免费看在线| 一本久道中文字幕精品亚洲嫩| 在线精品视频免费观看| 欧美一区二区免费| 欧美成人精品高清在线播放| 国产欧美精品国产国产专区| 中文字幕二三区不卡| 亚洲一级不卡视频| 午夜久久久久久久久久一区二区| 秋霞电影网一区二区| 国产自产高清不卡| 色综合久久久久网| 欧美日韩一区在线观看| 精品国产一区二区三区久久久蜜月|