智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1855|回复: 3
打印 上一主题 下一主题

AD转换调试--很简单,期待高手

[复制链接]

12

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
989
威望
554
贡献
241
兑换币
51
注册时间
2012-2-24
在线时间
97 小时
跳转到指定楼层
1#
发表于 2012-5-4 17:45:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 风少 于 2012-5-4 17:47 编辑

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
  uint tuoluo1;
//此程序要在中断中运行
void dianciAD_init()
{
  ATD0DIEN=0X00;
  ATD0CTL1=0X00; //分辨率为8位
  ATD0CTL2=0X00; //AFFC=1快速清除转换完成标志位  禁止中断
  ATD0CTL3=0X88;//右对齐,每个序列1个通道
  ATD0CTL4=0X03;// 此处采样时间4个周期 频率为总线1/8 这个地方应该不重要吧?
  ATD0CTL5=0X20;//通道0连续采样
}
void main(void) {
  /* put your own code here */
  dianciAD_init();

// EnableInterrupts;

  for(;;)
  {
    while(!ATD0STAT2_CCF0);
    tuoluo1=ATD0DR0L;
}}
为什么在调试的时候tuoluo1这个变量会变(陀螺仪不动,按理说应该出现一个定值),我单步调试的时候有时候会出现0,有时候会在220左右,为什么会出现0啊?难道结果寄存器会清零吗?
期待高手……

12

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2049
威望
1062
贡献
519
兑换币
141
注册时间
2012-3-7
在线时间
234 小时
2#
发表于 2012-5-4 19:58:32 | 只看该作者
这是你的寄存器操作不正确,再看看datasheet吧
回复 支持 反对

使用道具 举报

12

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
989
威望
554
贡献
241
兑换币
51
注册时间
2012-2-24
在线时间
97 小时
3#
 楼主| 发表于 2012-5-4 20:08:30 | 只看该作者
能说具体一点吗?我这个初始化已经看了很多遍了
回复 支持 反对

使用道具 举报

12

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
989
威望
554
贡献
241
兑换币
51
注册时间
2012-2-24
在线时间
97 小时
4#
 楼主| 发表于 2012-5-5 22:07:43 | 只看该作者
哈哈,终于搞出来了,原来单片机没接地
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 12:30 , Processed in 0.309875 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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