⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc_module.c

📁 standdard test protocol
💻 C
字号:
/*---------------------- ADC 8 bit 32 channel ----------------------/

/************************* ADC Address IC **************************/
int const AddrI2C_ADC[8] = { 0x90,0x92,0x94,0x96,0x98,0x9A,0x9C,0x9E };
/*******************************************************************/

/************************* ADCChannel O/P *************************/
int const ADC_Channel[4] = { 0x00,0x01,0x02,0x03 };
/*******************************************************************/


/************************ ADC Read Data ****************************/
int adc_data( void ) // Minimum time to next convert ADC = ADC_I2C_LOOP * 30ms
{
   static int dat = 0xFF;
   AdcBuff = 0;
   if( AddressSub > 0 && AddressSub < 5 )
   {
      AdcAddrID = AddrI2C_ADC[0];
      AdcAddrOP = ADC_Channel[ AddressSub - 1 ];
   }
   else if( AddressSub > 4 && AddressSub < 9 )
   {
      AdcAddrID = AddrI2C_ADC[1];
      AdcAddrOP = ADC_Channel[ AddressSub - 5 ];
   }
   else if( AddressSub > 8 && AddressSub < 13 )
   {
      AdcAddrID = AddrI2C_ADC[2];
      AdcAddrOP = ADC_Channel[ AddressSub - 9 ];
   }
   else if( AddressSub > 12 && AddressSub < 17 )
   {
      AdcAddrID = AddrI2C_ADC[3];
      AdcAddrOP = ADC_Channel[ AddressSub - 13 ];
   }
   else if( AddressSub > 16 && AddressSub < 21 )
   {
      AdcAddrID = AddrI2C_ADC[4];
      AdcAddrOP = ADC_Channel[ AddressSub - 17 ];
   }
   else if( AddressSub > 20 && AddressSub < 25 )
   {
      AdcAddrID = AddrI2C_ADC[5];
      AdcAddrOP = ADC_Channel[ AddressSub - 21 ];
   }
   else if( AddressSub > 24 && AddressSub < 29 )
   {
      AdcAddrID = AddrI2C_ADC[6];
      AdcAddrOP = ADC_Channel[ AddressSub - 25 ];
   }
   else if( AddressSub > 28 && AddressSub < 33 )
   {
      AdcAddrID = AddrI2C_ADC[7];
      AdcAddrOP = ADC_Channel[ AddressSub - 29 ];
   }
   for( j = 0;j < SubStatus ;j ++ )
   {
      i2c_start();
      if ( i2c_write(AdcAddrID)==0 )
      {
         i2c_write( AdcAddrOP );
         i2c_stop();
         i2c_start();
         i2c_write( AdcAddrID|1 );
         i2c_read(1);
         dat=i2c_read(0);
      }
      i2c_stop();
      AdcBuff = AdcBuff + dat;
      delay_ms( 5 );
   }
   dat = ( AdcBuff/SubStatus );
   return( dat );
}

/*******************************************************************/






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -