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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3643|回復: 0
打印 上一主題 下一主題
收起左側

Mini2440裸機程序之ADC

[復制鏈接]
跳轉到指定樓層
樓主
ID:70976 發表于 2014-12-25 19:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
源代碼及注釋

#define GLOBAL_CLK  1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "memtest.h"
#include "Mylib.h"
#define LED1 (1 << (5 * 2))
#define LED2 (1 << (6 * 2))
#define LED3 (1 << (7 * 2))
#define LED4 (1 << (8 * 2))
#define LEDS (LED1 | LED2 | LED3 | LED4)
#define LED1_ON   ~(1<<5)
#define LED2_ON   ~(1<<6)
#define LED3_ON   ~(1<<7)
#define LED4_ON   ~(1<<8)
#define LED1_OFF   (1<<5)
#define LED2_OFF   (1<<6)
#define LED3_OFF   (1<<7)
#define LED4_OFF   (1<<8)
void init()
{
    cal_cpu_bus_clk();//在MyLib.h中有定義

    Uart_Init(0,115200);//PCLK、波特率為115200

    Uart_Select(0);//選擇串口0

    My_Logo();//在MyLib.h中有定義
}
int ADC_Test()
{
    int temp;

    rADCCON = (1<<14)|(0x31<<6)|(0<<3);//預分頻器使能、預分頻值為49、通道0
    rADCCON |=0x1;// A/D開始轉換,開始之后,此位被清除
    while(rADCCON&0x1);//檢測有沒有開始
    while(!(rADCCON&0x8000));//檢測轉換是否結束
    temp = rADCDAT0&0x3ff;//返回轉換值,正常A/D轉換的數值只能通過ADCDAT0寄存器的[9:0]位讀取

    return temp;
}
void Main(void)
{
    int temp,Value;
    U8 key;
    init();
    MMU_Init();//內存初始化

    rGPBCON = LEDS;   //初始化LED相應引腳為輸出
    rGPBDAT = rGPBDAT|(LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF); // LED 滅
    rGPBDAT &= ~(0x1);
  
    Uart_Printf("\n\n\nPress 'Enter' to refresh the Screen\n");//終端提示

    while(1)
    {
           temp = ADC_Test();//調用A/D轉換函數
   
           Value = ((3300/1024)*temp)*1000;//轉換成電壓值,單位mV,Value值比實際值放大了1000倍
   
           key=Uart_Getch();//等待從鍵盤接收按鍵
   
           Beep(2000,100);//蜂鳴器發聲函數
   
   
           // 刷新A/D轉換,原因很簡單,我們往往在等待按鍵時調整電位器
           temp = ADC_Test();
   
           Value = ((3300/1024)*temp)*1000;
   
           rGPBCON = LEDS;   //還原GPB的配置,原因調用了蜂鳴器發聲函數,改變了GPB原先的配置
  
   
          if(key==ENTER_KEY)//判斷是否按了Enter鍵
          {
               key=0;//按鍵清零
   
               rGPBDAT = (~temp)&(~0x1);//輸出到LED顯示,務必把GPB0清零,否則你將會有麻煩 ^|^
   
               Uart_Printf("\n\n\n%d %% 1000000 %(V%)\n",Value);//把電壓值輸出到終端顯示
          }
          else
          {
               key=0;
   
               Uart_Printf("\n\n\nPress the 'Enter' key!\n");//按鍵非Enter鍵,提示按鍵
          }
    }
}


程序結果




聲明:本人將不會再發表其它相關ARM裸機源代碼,包括上傳共享資料,望見諒!

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久高清 | 欧美精品第三页 | 欧美在线天堂 | 蜜桃av人人夜夜澡人人爽 | 亚洲国产免费 | 亚洲一区二区三区在线播放 | 国产精品视频中文字幕 | 国产黄视频在线播放 | 91成人精品| 亚洲精品女人久久久 | 久久久www成人免费精品 | 一区二区精品在线 | 欧美中文字幕在线 | 91不卡在线 | av激情在线 | 日本网站免费在线观看 | 在线视频日韩精品 | 91精品国产自产在线老师啪 | 国产精品99久久久久久宅男 | 91看片| 97色在线观看免费视频 | 亚洲视频一区在线播放 | 在线免费av观看 | 欧美日韩电影免费观看 | 亚洲一区二区三区免费在线观看 | 亚洲一区视频在线 | 亚洲国产一区二区三区 | 日日欧美| 欧美男人天堂 | 久久久久久久久久久国产 | 国产黄色小视频在线观看 | 久久精品国内 | 噜噜噜噜狠狠狠7777视频 | 日本高清在线一区 | 色视频成人在线观看免 | 国产精品不卡 | 欧美国产精品久久久 | 操操日| 亚洲免费成人av | 欧美国产精品一区二区三区 | 激情自拍偷拍 |