新聞中心

        S3C2440 AD轉(zhuǎn)換器

        作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
        10 位CMOS ADC(模/數(shù)轉(zhuǎn)換器)是一個(gè)8 通道模擬輸入的再循環(huán)類(lèi)型設(shè)備。其轉(zhuǎn)換模擬輸入信號(hào)為10 位二

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

        本文引用地址:http://www.104case.com/article/201611/319208.htm

        觸摸屏在下一篇文章,ADC轉(zhuǎn)換比較簡(jiǎn)單,這里貼出一個(gè)代碼

        [cpp]view plaincopy
        1. #include"2440addr.h"
        2. #include"2440lib.h"
        3. #include"def.h"
        4. //=====================================================================
        5. //名稱(chēng):ADC_Select(intch,U32preScaler)
        6. //功能:選擇轉(zhuǎn)換通道,轉(zhuǎn)換器預(yù)分頻值設(shè)置
        7. //參數(shù):ch:轉(zhuǎn)換通道preScaler:預(yù)分頻值
        8. //返回值:無(wú)
        9. //=======================================================================
        10. voidADC_Select(intch,U32preScaler)
        11. {
        12. rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);
        13. }
        14. //=======================================================================
        15. //名稱(chēng):AD_ENABLE()
        16. //功能:采用置位使能方式啟動(dòng)AD轉(zhuǎn)換
        17. //參數(shù):無(wú)
        18. //返回值:轉(zhuǎn)換后的值
        19. //=======================================================================
        20. intAD_ENABLE(void)
        21. {
        22. inti;
        23. intval=0;
        24. for(i=0;i<16;i++)
        25. {
        26. rADCCON|=0x1;//使能ADC轉(zhuǎn)換
        27. while(rADCCON&0x1);//判斷使能ADC轉(zhuǎn)換后被清零
        28. while(!(rADCCON&0x8000));//等待轉(zhuǎn)換結(jié)束
        29. val+=(rADCDAT0&0x3ff);//讀取ADC轉(zhuǎn)換的值
        30. }
        31. val=val/16;//計(jì)算ADC轉(zhuǎn)換值
        32. returnval;
        33. }
        34. //=======================================================================
        35. //名稱(chēng):AD_READ()
        36. //功能:采用讀控制器的方式啟動(dòng)AD轉(zhuǎn)換
        37. //參數(shù):無(wú)
        38. //返回值:轉(zhuǎn)換后的值
        39. //=======================================================================
        40. intAD_READ(void)
        41. {
        42. inti;
        43. inttemp,val=0;
        44. rADCCON|=0x2;//ADC轉(zhuǎn)換通過(guò)讀操作來(lái)啟動(dòng)
        45. temp=rADCDAT0&0x3ff;//啟動(dòng)ADC
        46. for(i=0;i<16;i++)
        47. {
        48. rADCCON|=0x1;//使能ADC轉(zhuǎn)換
        49. while(rADCCON&0x1);//判斷使能ADC轉(zhuǎn)換后被清零
        50. while(!(rADCCON&0x8000));//等待轉(zhuǎn)換結(jié)束
        51. val+=(rADCDAT0&0x3ff);//讀取ADC轉(zhuǎn)換的值
        52. }
        53. val=val>>4;//計(jì)算ADC轉(zhuǎn)換值
        54. returnval;
        55. }
        56. voidMain(void)
        57. {
        58. inttemp_val;
        59. U8mode;
        60. SelectFclk(2);//設(shè)置系統(tǒng)時(shí)鐘400M
        61. ChangeClockDivider(2,1);//設(shè)置分頻1:4:8
        62. CalcBusClk();//計(jì)算總線(xiàn)頻率
        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. }





        關(guān)鍵詞: S3C2440AD轉(zhuǎn)換

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 巩义市| 华安县| 开原市| 安丘市| 连南| 大宁县| 安康市| 香格里拉县| 拜泉县| 和顺县| 襄城县| 永胜县| 新源县| 绥芬河市| 神农架林区| 高台县| 河东区| 房山区| 犍为县| 西华县| 大冶市| 集贤县| 彰化市| 沙坪坝区| 中西区| 鄂州市| 奈曼旗| 西贡区| 连云港市| 武安市| 寿宁县| 临夏市| 兴国县| 贵德县| 诸城市| 剑川县| 萨迦县| 额尔古纳市| 海原县| 琼中| 沁源县|