查看: 2172|回复: 6

[S12] MC9S12NE64的AD转换问题

[复制链接]

该用户从未签到

5

主题

33

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
发表于 2013-3-25 16:22:54 | 显示全部楼层 |阅读模式
程序如下:
#include       /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#define LEDCPU PTH
#define LEDCPU_dir DDRH
unsigned char AD_in1,AD_in0;
/*************************************************************/
/*                      初始化AD模块                         */
/*************************************************************/
void INIT_AD(void)
{
 ATDDIEN =0X00;
 ATDCTL2 = 0x40; 
 ATDCTL3 = 0x10;
 ATDCTL4 = 0XE5;  
 ATDCTL5 = 0xB1; 
 
}
/*************************************************************/
/*                         主函数                            */
/*************************************************************/
void main(void) {
  DisableInterrupts;
  LEDCPU_dir = 0xFF;
  INIT_AD();
  
  LEDCPU = 0;
  //ATDCTL5 = 0xB1;
 
  for(;;)
  { ATDCTL5 = 0xB1;
    while(!ATDSTAT0_SCF);
    AD_in0=ATDDR0L;
    AD_in1=ATDDR1L;
    if(AD_in1 >AD_in0)
      LEDCPU = 0;
    else
      LEDCPU = ~LEDCPU;
  }
}
麻烦高手看看,芯片是MC9S12NE64的。程序总是停在while(!ATDSTAT0_SCF);就不动了求指导
我知道答案 目前已有5人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-3-26 09:01:40 | 显示全部楼层

    RE:MC9S12NE64的AD转换问题

    不建议用while等待,用if判断.ATDCTL1没有进行配置。DisableInterrupts关闭了中断,ATDCTL5 = 0xB1;你开启了很多个中断。建议看一下例程。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-26 10:19:12 | 显示全部楼层

    回复:MC9S12NE64的AD转换问题

    回复第 2 楼 于2013-03-26 09:01:40发表:
    不建议用while等待,用if判断.ATDCTL1没有进行配置。DisableInterrupts关闭了中断,ATDCTL5 = 0xB1;你开启了很多个中断。建议看一下例程。 

    谢谢,是我太粗心了。没有开中断!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-26 11:09:32 | 显示全部楼层

    RE:MC9S12NE64的AD转换问题

    现在又有一个问题了。我AD转换通道AN1的值怎么跑到ATDDR0里面去了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-3-26 14:09:45 | 显示全部楼层

    RE:MC9S12NE64的AD转换问题

    输入通道和采集通道设置的是一个吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-26 15:05:37 | 显示全部楼层

    回复:MC9S12NE64的AD转换问题

    找到原因了,是ATDCTL5 没设置好。按道理来说ATDRRX里面存储的就是ANX的结果。。。为什么会这样我还是不明白。不过把ATDCTL5 = 0xB0;就正常了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    33

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-26 15:06:38 | 显示全部楼层

    回复:MC9S12NE64的AD转换问题

    回复第 2 楼 于2013-03-26 09:01:40发表:
    不建议用while等待,用if判断.ATDCTL1没有进行配置。DisableInterrupts关闭了中断,ATDCTL5 = 0xB1;你开启了很多个中断。建议看一下例程。 

    谢谢老师!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 04:34 , Processed in 0.102460 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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