標(biāo)題: 求一段MCU原函數(shù)的詳細(xì)解釋 [打印本頁]

作者: qq3119564    時間: 2018-4-2 15:40
標(biāo)題: 求一段MCU原函數(shù)的詳細(xì)解釋
/******************************************************************************
*函數(shù)名稱:uint adc10_start(uchar channel);
*函數(shù)功能:adc采集                                                                                         
*輸入?yún)?shù):channel:1-7               
*輸出參數(shù):adc
*返回值:adc10_start()
*******************************************************************************/
uint adc10_start(uchar channel)        //channel = 0~7
{
        uint        adc;
        uchar        i;

        ADC_RES = 0;
        ADC_RESL = 0;

        ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel;

        i = 250;
        do{
                if(ADC_CONTR & ADC_FLAG)
                {
                        ADC_CONTR &= ~ADC_FLAG;
                        adc = (uint)ADC_RES;
                        adc = (adc << 2) | (ADC_RESL & 3);
                        return        adc;
                }
        }while(--i);
        return        1024;
}
/******************************************************************************
*函數(shù)名稱:void  delay1_ms(unsigned char ms);
*函數(shù)功能:延時函數(shù)                                                                                         
*輸入?yún)?shù):ms               
*輸出參數(shù):無
*返回值:無
*******************************************************************************/
void  delay1_ms(unsigned char ms)
{
     unsigned int i;
         do{
              i = MAIN_Fosc / 14000;
                  while(--i)        ;   //14T per loop
     }while(--ms);
}
/******************************************************************************
*函數(shù)名稱:void  INputchange(uchar date);
*函數(shù)功能:選擇12C5A60AD/S2系列模擬輸入(AD)選擇                                                                                         
*輸入?yún)?shù):date               
*輸出參數(shù):無
*返回值:無
*******************************************************************************/
void  INputchange(uchar date)
{
             P1ASF = date;//0x03;//(1 << ADC_CH0);                        //12C5A60AD/S2系列模擬輸入(AD)選擇
          ADC_CONTR = ADC_360T | ADC_ON;

}
/******************************************************************************
*函數(shù)名稱:uint  AdHandle(uchar num);
*函數(shù)功能:AD數(shù)據(jù)處理函數(shù)                                                                                         
*輸入?yún)?shù):num               
*輸出參數(shù):number
*返回值:AdHandle
*******************************************************************************/
uint  AdHandle(uchar num)
{           uint        count;
       uint number;
           delay1_ms(100);
           delay1_ms(100);
           count = adc10_start(num);                // P1.0 ADC
           number = ((float)count*4.8828 );         //將采集的電壓放大1000倍,主要是為了提高co計算的精度
           return number;
   }
以及哪種AD轉(zhuǎn)換器可以用這段原函數(shù)進(jìn)行仿真?  







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1