智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1721|回复: 1
打印 上一主题 下一主题

飞思卡尔A/D转换应用实例

[复制链接]

35

主题

153

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3903

论坛元老奖章活跃会员奖章优秀会员奖章

威望
436
贡献
3327
兑换币
16
注册时间
2011-5-29
在线时间
70 小时
跳转到指定楼层
1#
发表于 2011-10-15 21:23:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要让ATD 开始转换工作,必须经过以下三个步骤:

1.将ADPU 置1,使ATD 启动;

2.按照要求对转换为数、扫描方式、采样时间、时钟频率及标志检查等方式进行设置;

3.发出启动命令;

如果上电默认状态即能满足工作要求,那么只要将ADPU 置1,然后通过控制寄存器发出转换命令,即可实现转换。



【例程】

程序描述:由通道ATD0进行单通道A/D转换,转换值在B口显示

程序如下:



#include <hidef.h>      /* common defines and macros */

#include <mc9s12dg128.h>     /* derivative information */

#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

/******定义变量********/

word AD_wValue;//AD转换结果

/*时钟初始化*/

void PLL_Init(void)      //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)

{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz

  REFDV=1;           //总线时钟=48/2=24MHz

  SYNR=2;

  while(!(CRGFLG&0x08));

  CLKSEL=0x80;

}

/*AD初始化*/

void AD_Init(void)   

{

  ATD0CTL2=0xC0;  //1100 0000 启动A/D, 快速清零, 无等待模式, 禁止外部触发, 中断禁止

  ATD0CTL3=0x20;  // 转换序列长度为4, No FIFO, Freeze模式下继续转换

  ATD0CTL4=0x85; // 8位精度, 2个时钟,分频系数为32,ATDClock=[BusClock*0.5]/[PRS+1]=2MHzRS=5,divider=12

  ATD0CTL5=0xA0;  //1010 0000   右对齐方式,有符号,单通道转换,通道0

  ATD0DIEN=0x00;  // 禁止数字输入

}

/*读取AD转换结果*/

void AD_GetValue(word *AD_wValue)

{

  *AD_wValue=ATD0DR0;  //ATDDR0~~ATDDR7为8个结果寄存器,此处为读取结果寄存器的值

}

/**********主函数**************/

void main(void)

{

  PLL_Init();

  AD_Init();         

  DDRB=0xFF;

  PORTB=0x00;

  EnableInterrupts;

  for(;;)

  {

    while(!ATD0STAT1_CCF0);    // 独立通道转换完成标志位,每个通道转换结束后置位,

while(ATDOSTAT1_CCF0==1)

       AD_GetValue(&AD_wValue);   // 读取转换结果

    PORTB = (byte)AD_wValue;   // 在B口显示转换值

  }

}

3

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
威望
261
贡献
67
兑换币
27
注册时间
2012-2-28
在线时间
25 小时
毕业学校
康平一中
2#
发表于 2012-3-6 19:52:43 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 12:37 , Processed in 0.069491 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表