4437|6

120

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ADC12转换 [复制链接]

#include  
unsigned int results[4];                                       // 转换值存取变量
void main(void)
{
  unsigned int i;
  WDTCTL = WDTPW+WDTHOLD;                                       // 关闭看门狗
  P7SEL |= 0x03;                                               // 使能外部晶振
  UCSCTL6 |= XCAP_3;                                          // 配置晶振电容
  while ( (SFRIFG1 &OFIFG))                                  // 判断晶振是否起振
  {   
    UCSCTL7 &= ~(XT1LFOFFG + DCOFFG);                       // 清除失效标志位
    SFRIFG1 &= ~OFIFG;                                     // 清除失效中断标志位
  }
  UCSCTL4 = SELM__DCOCLK + SELS__DCOCLK;                 // 选择时钟源
  //SELM__DCOCLK主时钟选择DCOCLK;SELS__DCOCLK子系统时钟选择DCOCLK;
  P7DIR &= ~(BIT4 + BIT5);                                      // 输入
  P7SEL |= (BIT4 + BIT5);                                      // P7口第二功能
  
  ADC12CTL2 = ADC12RES_2 + ADC12REFOUT;                       // AD基本配置
  //ADC12RES_2定义转换结果分辨率 12位 13个时钟周期转换时间
  //ADC12REFOUT打开参考输出
  ADC12CTL0 = ADC12ON + ADC12MSC + ADC12SHT03 + ADC12REFON + ADC12REF2_5V;
  //ADC12ON打开ADC12
  //ADC12MSC SHI的第一个上升沿信号触发采样定时器,只要前面的转换完成,那么后面的转换就自动进行
  //ADC12SHT03采样保持时间
  //ADC12REFON ADC12参考发生器使能
  //ADC12REF2_5V ADC12参考电压2.5V
  ADC12MCTL0 |= ADC12SREF_1 + ADC12INCH_10;                       // 采样温度
  //ADC12SREF_1 转换参考电压选择
  //ADC12INCH_10输入通道选择 温度二极管
  ADC12MCTL1 |= ADC12SREF_1 + ADC12INCH_11;                      // 采样VACC/2
  //ADC12SREF_1转换参考电压选择
  // ADC12INCH_11 输入通道选择 (AVCC – AVSS) / 2
  ADC12MCTL2 |= ADC12INCH_12;                                   // 通道12输入
  //ADC12INCH_12 输入通道选择
  ADC12MCTL3 |= ADC12INCH_13 + ADC12EOS;                       // 通道13输入
  //ADC12INCH_13输入通道选择
  //ADC12EOS 结束序列转换
  ADC12CTL1 = ADC12SHP + ADC12CONSEQ_3;                       // 选择转换模式
  //ADC12SHP 采样保持脉冲模式 采样保持信号源于采样定时器
//ADC12CONSEQ_3 序列通道重复转换
  for (i=0;i<0xFFFF;i++);                                    // 等待基准电压建立                       
  
  UCSCTL8 |= MODOSCREQEN;
  //MODOSC请求使能
  ADC12IE |= 0X08;                                              // 使能通道4中断
  //中断使能寄存器
  ADC12CTL0 |= ADC12ENC;                                       // 开启转换
  //ADC12使能转换
  _EINT();                                                    // 打开总中断

  ADC12CTL0 |= ADC12SC;                                      // 转换开始
  //开始采样转换
  LPM3;                                                     // 进入低功耗3
}
/*************************************************************************
** 函数名称:AD转换中断函数
** 工作环境: IAR 4.11B
** 功能:     保存转换值
** 相关文件:
** 修改日志:
*************************************************************************/
#pragma vector = ADC12_VECTOR
__interrupt void ADC12ISR(void)
{
  results[0] = ADC12MEM0;                                     // 保存第一通道值
  //ADC12MEM0 ADC12转换结果存储器
  results[1] = ADC12MEM1;                                    // 保存第二通道值

  results[2] = ADC12MEM2;                                   // 保存第三通道值
  
  results[3] = ADC12MEM3;                                  // 保存第四通道值
}

最新回复

再简单说一下这两个问题,没有选择参考源说明有默认参考源,一般默认正负极两端。转换周期13个时钟是说,,模拟信号采样进来后,转换成数字信息需要13个时钟的时间。。   详情 回复 发表于 2014-3-22 21:37
 
点赞 关注

回复
举报

120

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
关于ADC12的使用和配置,没一点头绪!哪位大虾帮忙指点一下吧!!  ADC12IE |= 0X08;中断使能寄存器3??是随意指定的吗?

点评

还想再问两个问题:1)通道12、13输入不用选择转换参考电压??2)ADC12RES_2定义转换结果分辨率 12位 13个时钟周期转换时间 这是什么意思啊?可以解释一下吗??谢谢!!  详情 回复 发表于 2014-3-22 09:27
这句的意思是,值存入了ADC12MEM3,相应的标志位置位,进入中断函数,前提是它的中断使能,ADC12IE=0x08;  详情 回复 发表于 2014-3-21 20:46
 
 

回复

396

帖子

5

TA的资源

纯净的硅(中级)

板凳
 
羽翼之杨勇0102 发表于 2014-3-21 11:03
关于ADC12的使用和配置,没一点头绪!哪位大虾帮忙指点一下吧!!  ADC12IE |= 0X08;中断使能寄 ...

这句的意思是,值存入了ADC12MEM3,相应的标志位置位,进入中断函数,前提是它的中断使能,ADC12IE=0x08;

点评

谢谢您的解答!那为什么寄存器0、1、2没有中断使能呢??  详情 回复 发表于 2014-3-22 08:46
 
个人签名一别四五年,变化万千。https://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]
 
 

回复

120

帖子

0

TA的资源

一粒金砂(中级)

4
 
jqh_111 发表于 2014-3-21 20:46
这句的意思是,值存入了ADC12MEM3,相应的标志位置位,进入中断函数,前提是它的中断使能,ADC12IE=0x08;{ ...

谢谢您的解答!那为什么寄存器0、1、2没有中断使能呢??

点评

为什么没有使能0、1、2的中断,得问你自己。是你自己附的程序啊。这些中断也是可以开的,还有后面的问题,可以参考用户指导书,在ADC12那一章,讲的很详细。用户指导书可以去TI官网下载。。  详情 回复 发表于 2014-3-22 21:34
 
 
 

回复

120

帖子

0

TA的资源

一粒金砂(中级)

5
 
羽翼之杨勇0102 发表于 2014-3-21 11:03
关于ADC12的使用和配置,没一点头绪!哪位大虾帮忙指点一下吧!!  ADC12IE |= 0X08;中断使能寄 ...

还想再问两个问题:1)通道12、13输入不用选择转换参考电压??2)ADC12RES_2定义转换结果分辨率 12位 13个时钟周期转换时间 这是什么意思啊?可以解释一下吗??谢谢!!

点评

再简单说一下这两个问题,没有选择参考源说明有默认参考源,一般默认正负极两端。转换周期13个时钟是说,,模拟信号采样进来后,转换成数字信息需要13个时钟的时间。。  详情 回复 发表于 2014-3-22 21:37
 
 
 

回复

396

帖子

5

TA的资源

纯净的硅(中级)

6
 
羽翼之杨勇0102 发表于 2014-3-22 08:46
谢谢您的解答!那为什么寄存器0、1、2没有中断使能呢??

为什么没有使能0、1、2的中断,得问你自己。是你自己附的程序啊。这些中断也是可以开的,还有后面的问题,可以参考用户指导书,在ADC12那一章,讲的很详细。用户指导书可以去TI官网下载。。
 
个人签名一别四五年,变化万千。https://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]
 
 

回复

396

帖子

5

TA的资源

纯净的硅(中级)

7
 
羽翼之杨勇0102 发表于 2014-3-22 09:27
还想再问两个问题:1)通道12、13输入不用选择转换参考电压??2)ADC12RES_2定义转换结果分辨率 12位 13 ...

再简单说一下这两个问题,没有选择参考源说明有默认参考源,一般默认正负极两端。转换周期13个时钟是说,,模拟信号采样进来后,转换成数字信息需要13个时钟的时间。。
 
个人签名一别四五年,变化万千。https://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表