查看: 3021|回复: 2

[S12] S12dp512的AD采样和CAN联合工作的问题

[复制链接]

该用户从未签到

8

主题

36

帖子

0

新手上路

Rank: 1

积分
89
最后登录
1970-1-1
发表于 2012-3-7 14:51:09 | 显示全部楼层 |阅读模式
我想用AD采样得到的数值通过CAN传给上位机,但是一上电AD工作4、5秒钟后就不工作了,然后我把CAN那段程序注释掉,单独AD工作正常,再把AD程序注释掉,单独CAN工作正常,然后把这两个程序融合在一起,找了半天,发现只要注释掉定时器,AD采样就能连续采样,把定时器打开,不管是时钟实时中断还是用主定时器,都会出现AD工作一会就不采数了,这是怎么回事呀?求大神帮助。。。。
以下是时钟设置:
void ECT_init(void)
{
 
      TSCR1 = 0x80;
    TSCR2 = 0x80;
    
  
//CRGINT=0x80; /* enable RTI interrupts */
   //RTICTL=0x59;
}

两种颜色是两种初始化方式,标志位我都进行了复位,把定时器注释掉AD就正常了,但是单独CAN用这定时器也没问题,为什么呀?
我知道答案 目前已有1人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-3-8 10:14:41 | 显示全部楼层

    RE:S12dp512的AD采样和CAN联合工作的问题

    //CRGINT=0x80; /* enable RTI interrupts */
    这个应该放在下面,先配置后开启中断。你试试。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    36

    帖子

    0

    新手上路

    Rank: 1

    积分
    89
    最后登录
    1970-1-1
     楼主| 发表于 2012-3-8 10:38:38 | 显示全部楼层

    回复:S12dp512的AD采样和CAN联合工作的问题

    我昨天折腾了一天,虽然找到问题所在,但是不知道为什么,就是AD采样程序里去掉一句话,见红色,如下:
    void ADCvalue() {
                       
                        unsigned int temp;
                        ATD0CTL5=0x21;
                               
                     <span style="color: #ff0000">  【 while((ATD0STAT0&(16);
                            return temp;
                            
                         
    }
    就是我括起来的等待转换结束那句程序,去掉了就正常了,加上那句话采样一会儿会发现:采样结果寄存器里的数是刷新的,但是到主程序里就赋不出来,开始我怀疑这跟定时器中断间隔时间有关,因为定时器间隔时间长些出现那个问题的慢些,可能是不是和整个程序结构有关,或是单片机运行的速度不够。。。。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-12 17:02 , Processed in 0.082104 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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