色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > S3C2440 AD轉換器

          S3C2440 AD轉換器

          作者: 時間:2016-11-21 來源:網絡 收藏
          10 位CMOS ADC(模/數轉換器)是一個8 通道模擬輸入的再循環(huán)類型設備。其轉換模擬輸入信號為10 位二

          進制數字編碼,最大轉換率為2.5MHz A/D轉換器時鐘下的 500 KSPS。A/D 轉換器支持片上采樣-保持功能和掉電
          模式的操作。

          本文引用地址:http://cafeforensic.com/article/201611/319208.htm

          觸摸屏在下一篇文章,ADC轉換比較簡單,這里貼出一個代碼

          [cpp]view plaincopy
          1. #include"2440addr.h"
          2. #include"2440lib.h"
          3. #include"def.h"
          4. //=====================================================================
          5. //名稱:ADC_Select(intch,U32preScaler)
          6. //功能:選擇轉換通道,轉換器預分頻值設置
          7. //參數:ch:轉換通道preScaler:預分頻值
          8. //返回值:無
          9. //=======================================================================
          10. voidADC_Select(intch,U32preScaler)
          11. {
          12. rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);
          13. }
          14. //=======================================================================
          15. //名稱:AD_ENABLE()
          16. //功能:采用置位使能方式啟動AD轉換
          17. //參數:無
          18. //返回值:轉換后的值
          19. //=======================================================================
          20. intAD_ENABLE(void)
          21. {
          22. inti;
          23. intval=0;
          24. for(i=0;i<16;i++)
          25. {
          26. rADCCON|=0x1;//使能ADC轉換
          27. while(rADCCON&0x1);//判斷使能ADC轉換后被清零
          28. while(!(rADCCON&0x8000));//等待轉換結束
          29. val+=(rADCDAT0&0x3ff);//讀取ADC轉換的值
          30. }
          31. val=val/16;//計算ADC轉換值
          32. returnval;
          33. }
          34. //=======================================================================
          35. //名稱:AD_READ()
          36. //功能:采用讀控制器的方式啟動AD轉換
          37. //參數:無
          38. //返回值:轉換后的值
          39. //=======================================================================
          40. intAD_READ(void)
          41. {
          42. inti;
          43. inttemp,val=0;
          44. rADCCON|=0x2;//ADC轉換通過讀操作來啟動
          45. temp=rADCDAT0&0x3ff;//啟動ADC
          46. for(i=0;i<16;i++)
          47. {
          48. rADCCON|=0x1;//使能ADC轉換
          49. while(rADCCON&0x1);//判斷使能ADC轉換后被清零
          50. while(!(rADCCON&0x8000));//等待轉換結束
          51. val+=(rADCDAT0&0x3ff);//讀取ADC轉換的值
          52. }
          53. val=val>>4;//計算ADC轉換值
          54. returnval;
          55. }
          56. voidMain(void)
          57. {
          58. inttemp_val;
          59. U8mode;
          60. SelectFclk(2);//設置系統(tǒng)時鐘400M
          61. ChangeClockDivider(2,1);//設置分頻1:4:8
          62. CalcBusClk();//計算總線頻率
          63. rGPHCON&=~((3<<4)|(3<<6));
          64. rGPHCON|=(2<<4)|(2<<6);//GPH2--TXD[0];GPH3--RXD[0]
          65. rGPHUP=0x00;//使能上拉功能
          66. Uart_Init(0,115200);
          67. Uart_Select(0);
          68. while(1)
          69. {
          70. ADC_Select(2,49);
          71. Uart_Printf("SelectADCMode:1.Enable2.Readn");
          72. mode=Uart_Getch();
          73. Uart_Printf("n%cnn",mode);
          74. if(mode!=1&&mode!=2)
          75. {
          76. Uart_Printf("youselectwrongmodel!n");
          77. return;
          78. }
          79. switch(mode)
          80. {
          81. case1:
          82. Uart_Printf("ADCEnable-ConvertModen");
          83. temp_val=AD_ENABLE();
          84. break;
          85. case2:
          86. Uart_Printf("ADCRead-ConvertModen");
          87. temp_val=AD_READ();
          88. break;
          89. }
          90. Uart_Printf("ADCval=%dn",temp_val);//發(fā)送到串口顯示
          91. }
          92. }





          關鍵詞: S3C2440AD轉換

          評論


          技術專區(qū)

          關閉