• 大小: 3.51MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-11
  • 语言: 其他
  • 标签:

资源简介

含有红外测距模块(GP2Y0A21K0F)的详细资料,并附有测试程序,原理图。程序仅供参考

资源截图

代码片段和文件信息

#include  “systemInit.h“
#include  “uartGetPut.h“
#include  
#include  
#define  ADCSequEnable          ADCSequenceEnable
#define  ADCSequDisable         ADCSequenceDisable
#define  ADCSequConfig          ADCSequenceConfigure
#define  ADCSequStepConfig      ADCSequenceStepConfigure
#define  ADCSequDataGet         ADCSequenceDataGet
tBoolean ADC_EndFlag = false;                               //  定义ADC转换结束的标志
//  ADC初始化
void adcInit(void)
{
    SysCtlPeriEnable(SYSCTL_PERIPH_ADC);                    //  使能ADC模块
    SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);             //  设置ADC采样速率
    ADCSequDisable(ADC_base 0);                            //  配置前先禁止采样序列
    //  采样序列配置:ADC基址,采样序列编号,触发事件,采样优先级
    ADCSequConfig(ADC_base 0 ADC_TRIGGER_PROCESSOR 0);
    //  采样步进设置:ADC基址,采样序列编号,步值,通道设置
    ADCSequStepConfig(ADC_base 0 0 ADC_CTL_CH0 |
                                      ADC_CTL_END |
                                      ADC_CTL_IE);

    ADCIntEnable(ADC_base 0);                              //  使能ADC中断
    IntEnable(INT_ADC0);                                    //  使能ADC采样序列中断
    IntMasterEnable();                                      //  使能处理器中断
    ADCSequEnable(ADC_base 0);                             //  使能采样序列
}


//  ADC采样
unsigned long adcSample(void)
{
    unsigned long ulValue;

    ADCProcessorTrigger(ADC_base 0);                       //  处理器触发采样序列
    while (!ADC_EndFlag);                                   //  等待采样结束
    ADC_EndFlag = false;                                    //  清除ADC采样结束标志
    ADCSequDataGet(ADC_base 0 &ulValue);                  //  读取ADC转换结果
    return(ulValue);
}

float R;
//  主函数(程序入口)
int main(void)
{
    float ulValsum=0;
    char cBuf[30]s[30];
    int i;
    jtagWait();                                             //  防止JTAG失效,重要!
    clockInit();                                            //  时钟初始化:PLL,20MHz
    uartInit();                                             //  UART初始化
    adcInit();                                              //  ADC初始化
    for (;;)
    {
      for(i=0;i<50;i++)
      { 
        ulVal = adcSample();
        sum=sum+ulVal;
      }
        sum/=50.0;                               //  ADC采样
        sum = (sum * 3) / 1024;                      //  转换成电压值                                    
        sprintf(s “电压= %f v\r\n“ sum);           //  输出格式化
        uartPuts(s);                                    //  通过UART显示结果
        R=(1/(sum*1024/3*0.0000823+0.0007))-4;
        sprintf(cBuf “R =%f(cm)\r\n“ R);              //  输出格式化
        uartPuts(cBuf);                                //  通过UART显示结果
        sum=0;
        SysCtlDelay(1500 * (TheSysClock / 3000));           //  延时约1500ms
    }
}


//  ADC采样序列0的中断
void ADC_Sequence_0_ISR(void)
{
    unsigned long ulStatus;

    ulStatus = ADCIntStatus(ADC_base 0 true);             //  读取中断状态
    ADCIntClear(ADC_base 0);       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-04-23 00:54  红外测距模块资料\
     文件     1173451  2010-07-17 17:08  红外测距模块资料\GP2D12-enchiridion-0417.pdf
     文件       63039  2010-07-18 19:42  红外测距模块资料\GP2D12_IC-ON-LINE.CN.pdf
     目录           0  2010-08-23 11:47  红外测距模块资料\测距\
     文件        6599  2010-08-23 11:46  红外测距模块资料\测距\Demo.dep
     文件       38378  2010-08-22 20:47  红外测距模块资料\测距\Demo.ewd
     文件       43293  2010-08-22 20:47  红外测距模块资料\测距\Demo.ewp
     文件         158  2008-07-02 15:19  红外测距模块资料\测距\Demo.eww
     文件        3453  2010-08-23 11:44  红外测距模块资料\测距\main.c
     文件        9201  2008-11-20 18:04  红外测距模块资料\测距\startup_ewarm.c
     文件        1723  2008-11-20 17:34  红外测距模块资料\测距\systemInit.c
     文件         749  2008-10-27 14:54  红外测距模块资料\测距\systemInit.h
     文件        2926  2008-10-27 11:19  红外测距模块资料\测距\uartGetPut.c
     文件         442  2008-10-06 08:51  红外测距模块资料\测距\uartGetPut.h
     目录           0  2010-08-23 10:37  红外测距模块资料\红外测距\
     文件       30806  2009-08-26 08:35  红外测距模块资料\红外测距\2849_SHARP_GP2D12.pdf
     文件       27648  2010-08-22 21:55  红外测距模块资料\红外测距\2D12我们的.xls
     文件      149134  2009-08-26 08:49  红外测距模块资料\红外测距\AN004-GP2D12.pdf
     文件       72192  2009-08-26 10:05  红外测距模块资料\红外测距\GP2D12 在机器人足球中的应用.doc
     文件       65266  2009-08-26 09:04  红外测距模块资料\红外测距\GP2D12-DATASHEET-YIXUETONG.pdf
     文件      290782  2009-08-26 20:11  红外测距模块资料\红外测距\GP2D121.pdf
     目录           0  2010-08-21 10:23  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\
     文件       60020  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\R144-GP2Y0A02YK.jpg
     文件       58622  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\R146-GP2D120.jpg
     文件       31824  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\R302-GP2Y0A700K0F.jpg
     文件       58630  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\R48-IR12.jpg
     文件       10752  2010-08-21 10:23  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\Thumbs.db
     文件        9607  2009-08-26 14:13  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\a.css
     文件         878  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\a.js
     文件        4992  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\basket.jpg
     文件       40502  2009-08-26 14:00  红外测距模块资料\红外测距\Linearizing Sharp Ranger Data.files\irlinear-fig1.jpg
............此处省略23个文件信息

评论

共有 条评论

相关资源