久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1196|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)讀取兩個通道ADC電壓出現(xiàn)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:322939 發(fā)表于 2024-11-19 19:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家有沒有遇到使用AI8G1J08A這款芯片在使用查詢方式讀取兩個通道ADC電壓時,只能正確讀取一個通道電壓值,另一個通道讀取的不是輸入電壓值,甚至如:通道2輸入5V,數(shù)值沒有變化,如將5V接入通道3那么通道2顯示(1020)數(shù)值,通道2輸入接地,在通道3輸入接5V通道2也會顯示正確讀數(shù),使用一個ADC通道就沒問題,如使用兩個通道則會出現(xiàn)前面的問題。奇怪了!

unsigned int Tvuer=0;
unsigned int sum=0,Set_Sum=0;
void Delay(unsigned  int z)
{
unsigned  int y,x;
for(y=0;y<z;y++)
   for(x=0;x<1140;x++);
   }


void Uart1_Init(void)        //9600bps@11.0592MHz
{
      SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時器時鐘1T模式  
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
        TMOD &= 0x0F;                //設(shè)置定時器模式
        TL1 = 0xE0;                        //設(shè)置定時初始值
        TH1 = 0xFE;                        //設(shè)置定時初始值
        ET1 = 0;                        //禁止定時器中斷
        TI=1;
        TR1 = 1;                        //定時器1開始計時
        EA=1;
}

/****************Io設(shè)置**************/
void IO_init(void)
{
        P3M0=0X03;
        P3M1=0XfC;
        P5M0=0XDF;
        P5M1=0X20;
}

/*************ADC初始化************/
void  ADC_Init(void)
{
        //  P3M0=0x03;
         // P3M1=0xfc;

   ADC_RES=0;
    ADC_RESL=0;           
    P_SW2|=0x80;
    ADCTIM=0x3f;  //??????
   P_SW2&=0x7f;
    ADCCFG=0x0f;   //????????2/16
    ADC_CONTR=0x80;
    Delay(1);
}

/**************ADC處理*************/
unsigned  int Get_adc_tep(unsigned char channel)
{

         ADC_CONTR|=0x40|channel;
              
                _nop_();
         _nop_();
                 
       while(!(ADC_CONTR&0x20));         //????                                       
         ADC_CONTR&=~0x20;                     //??     
     return  (ADC_RES<<2)|ADC_RESL;//??+??????
}

void fighting_1(void)
{
        u8 f;
        u16 volue=0;
        for(f=0;f<20;f++)
        {
                volue+=Get_adc_tep(3);
        }
        Tvuer=volue/20;        
        ZKB=(unsigned  char)Tvuer;
        volue=0;
}
void fighting_2()
{
        u8 t;
        u16 Imst=0;
        for(t=0;t<10;t++)
        {
                Imst+=Get_adc_tep(2);
        }
        sum=Imst/10;
        Imst=0;

}

/***************主程序*****************/
void main(void)
{
        IO_init();        
        ADC_Init();
        Uart1_Init();
        while(1)
        {
        fighting_1();  
          fighting_2();        
                printf("讀取ADC5的值=%x\n",sum);
                Delay(1000);
        }   
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:161164 發(fā)表于 2024-11-20 09:12 | 只看該作者
  1. /**************ADC處理*************/
  2. unsigned  int Get_adc_tep(unsigned char channel)
  3. {

  4.          [color=Red]ADC_CONTR=0xC0|channel;[/color]
  5.               
  6.                 _nop_();
  7.          _nop_();
  8.                  
  9.        while(!(ADC_CONTR&0x20));         //????                                       
  10.          ADC_CONTR&=~0x20;                     //??     
  11.      return  (ADC_RES<<2)|ADC_RESL;//??+??????
  12. }
復(fù)制代碼
回復(fù)

使用道具 舉報

板凳
ID:322939 發(fā)表于 2024-11-20 11:56 | 只看該作者

問題還是一樣,就相當(dāng)于第2通道和第3通道并在一起,以第3通道為主,當(dāng)?shù)?通道有電壓輸入它就有變化,通道2輸入電壓卻沒顯示變化.
回復(fù)

使用道具 舉報

地板
ID:322939 發(fā)表于 2024-11-20 15:51 | 只看該作者
廠家芯片都做出來了正常不會有這問題吧?其它系列型號以這代碼不會出現(xiàn)這問題
回復(fù)

使用道具 舉報

5#
ID:879348 發(fā)表于 2024-11-20 16:01 | 只看該作者
大部分單片機(jī)ADC切換通道過快的時候,就會有通道相互影響的問題,因為本質(zhì)是電容充電,解決辦法是加長采樣時間(內(nèi)部電容充電時間)
回復(fù)

使用道具 舉報

6#
ID:322939 發(fā)表于 2024-11-21 16:37 | 只看該作者
wufa1986 發(fā)表于 2024-11-20 16:01
大部分單片機(jī)ADC切換通道過快的時候,就會有通道相互影響的問題,因為本質(zhì)是電容充電,解決辦法是加長采樣 ...

加長采樣時間也沒用,一樣會影響別的通道
回復(fù)

使用道具 舉報

7#
ID:322939 發(fā)表于 2024-11-22 08:28 | 只看該作者
概然解決不了還是換別的芯片來得快
回復(fù)

使用道具 舉報

8#
ID:1136609 發(fā)表于 2024-11-23 17:38 | 只看該作者
加長采樣時間也沒用,一樣會影響別的通道
回復(fù)

使用道具 舉報

9#
ID:1072347 發(fā)表于 2024-11-24 16:01 | 只看該作者
沒找到這個芯片的資料,想看看其是否同時支持多路adc,如果按你所說的,要么是芯片壞了,要么就是干擾問題
回復(fù)

使用道具 舉報

10#
ID:1100726 發(fā)表于 2024-11-25 09:55 | 只看該作者
可能的原因:
1、通道間干擾:
當(dāng)兩個ADC通道同時工作時,可能會存在通道間的電磁干擾或信號串?dāng)_,導(dǎo)致一個通道的讀取結(jié)果受到另一個通道的影響。
2、多路復(fù)用器配置問題:
AI8G1J08A芯片可能使用多路復(fù)用器來選擇不同的ADC通道。如果多路復(fù)用器配置不正確或存在故障,可能會導(dǎo)致通道選擇錯誤,從而影響讀取結(jié)果。
3、內(nèi)部寄存器或電路故障:
芯片內(nèi)部的寄存器或電路可能發(fā)生故障,導(dǎo)致無法正確讀取或處理兩個通道的ADC電壓值。
回復(fù)

使用道具 舉報

11#
ID:1034262 發(fā)表于 2024-11-25 11:38 | 只看該作者
如果兩路采樣ADC值一樣,則可能是硬件短路、軟件通道選擇沒改變。
回復(fù)

使用道具 舉報

12#
ID:322939 發(fā)表于 2024-11-25 16:11 | 只看該作者
wohaiainine 發(fā)表于 2024-11-25 09:55
可能的原因:
1、通道間干擾:
當(dāng)兩個ADC通道同時工作時,可能會存在通道間的電磁干擾或信號串?dāng)_,導(dǎo)致一 ...

芯片也換過了,還是一樣
回復(fù)

使用道具 舉報

13#
ID:322939 發(fā)表于 2024-11-25 16:12 | 只看該作者
aldnoahz 發(fā)表于 2024-11-24 16:01
沒找到這個芯片的資料,想看看其是否同時支持多路adc,如果按你所說的,要么是芯片壞了,要么就是干擾問題

看了官網(wǎng)的資料可以支持多路ADC,也換過芯片,故障還是一樣
回復(fù)

使用道具 舉報

14#
ID:322939 發(fā)表于 2024-11-25 16:15 | 只看該作者
coody_sz 發(fā)表于 2024-11-25 11:38
如果兩路采樣ADC值一樣,則可能是硬件短路、軟件通道選擇沒改變。

兩路采樣ADC值不一樣,明明設(shè)置選通道2的,數(shù)值讀出來相差很大,如通道3輸入電壓,則通道2讀出來很穩(wěn)定
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精选久久 | 成人免费视频观看视频 | 欧美成年人视频在线观看 | 免费久久网站 | 日本久久精品视频 | 亚洲三区在线观看 | 97久久精品午夜一区二区 | 亚洲视频二 | 一片毛片 | 欧美成人精品在线 | 亚洲福利电影网 | 精品国产综合 | 精品一区二区三区四区五区 | 国产精品免费在线 | 国户精品久久久久久久久久久不卡 | 一区二区三区免费 | 宅女噜噜66国产精品观看免费 | 99视频在线看 | 成人精品一区二区三区四区 | 精品欧美一区二区三区久久久 | 天天曰天天曰 | 久久久精品一区 | 国产一级片91 | 久久av在线播放 | 中文字幕精品一区 | 久久久123 | 人成精品 | 99在线国产| 中文字幕精品一区二区三区精品 | 日韩www视频| 免费一区 | 人人九九精 | av手机在线免费观看 | 美女在线视频一区二区三区 | 国产免费福利在线 | 久久亚洲一区 | 一级黄色片在线免费观看 | 久久精品一区二区 | 久久精品色欧美aⅴ一区二区 | 一级a性色生活片久久毛片 一级特黄a大片 | 美女在线视频一区二区三区 |