1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1757|回復: 1
收起左側

這個C語言轉換程序看不明白。有大佬能說明一下都是干什么的,什么作用么?

[復制鏈接]
ID:747076 發表于 2020-5-24 13:43 | 顯示全部樓層 |閱讀模式
uint adc0832(unsigned char CH)
{
  uchar i,test,adval;
  adval = 0x00;
  test = 0x00;
  Clk = 0;      
  DATI = 1;
  _nop_();   _nop_();
  CS = 0;
  _nop_();
  Clk = 1;
  _nop_();  _nop_();
if(CH == 0x00)     
   {
       Clk = 0;
       DATI = 1;   
       _nop_();
       Clk = 1;
       _nop_();  _nop_();

       Clk = 0;
       DATI = 0;   
       _nop_();  _nop_();

       Clk = 1;
       _nop_();
    }
    else
    {
       Clk = 0;
       DATI = 1;  
        _nop_();  _nop_();

       Clk = 1;
        _nop_();  _nop_();

       Clk = 0;
       DATI = 1;  
      _nop_();
      Clk = 1;
      _nop_();
    }
      Clk = 0;   _nop_();

      DATI = 1;
   for( i = 0;i < 8;i++ )   
    {
       _nop_();
       adval <<= 1;
       Clk = 1;
       _nop_();  _nop_();

       Clk = 0;           _nop_();

       if (DATO)
          adval |= 0x01;
      else
          adval |= 0x00;
    }
  for (i = 0; i < 8; i++)  
      {
           test >>= 1;
           if (DATO)
              test |= 0x80;
           else
              test |= 0x00;
          _nop_();
          Clk = 1;
          _nop_();  _nop_();

          Clk = 0;   _nop_();

      }
  if (adval == test)     
     dat = test;
     _nop_();  _nop_();
     CS = 1;      
     DATO = 1;
     Clk = 1;
     return dat;

}

回復

使用道具 舉報

ID:70069 發表于 2020-5-24 22:37 | 顯示全部樓層
uint adc0832(unsigned char CH)
{
  uchar i,test,adval;
  adval = 0x00;
  test = 0x00;
  Clk = 0;      
  DATI = 1;
  CS = 0;
  Clk = 1;
if(CH == 0x00) //選擇通道   
   {
       Clk = 0;//這段是選通道0
       DATI = 1;   
       Clk = 1;
       Clk = 0;
       DATI = 0;   
        Clk = 1;
    }
    else
    {
       Clk = 0;//這段是選擇通道1
       DATI = 1;  
       Clk = 1;
       Clk = 0;
       DATI = 1;  
      Clk = 1;
    }
      Clk = 0;  

      DATI = 1;
   for( i = 0;i < 8;i++ )   //讀取8位數據高位在前
    {
        adval <<= 1;
       Clk = 1;
       Clk = 0;  

       if (DATO)
          adval |= 0x01;
      else
          adval |= 0x00;
    }
  for (i = 0; i < 8; i++)  //讀取8位數據低位在前,也就是上面一段反這讀取。
      {
           test >>= 1;
           if (DATO)
              test |= 0x80;
           else
              test |= 0x00;
           Clk = 1;
          Clk = 0;
      }
  if (adval == test)     //進行校驗,如果相同則數據正確,
     dat = test;
      CS = 1;      
     DATO = 1;
     Clk = 1;
     return dat;

}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表