智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6255|回复: 19
打印 上一主题 下一主题

ATD模块的中断程序

  [复制链接]

11

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
772
威望
297
贡献
293
兑换币
0
注册时间
2010-1-16
在线时间
91 小时
跳转到指定楼层
1#
发表于 2010-3-12 20:16:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

void wait() {
  int i,j;
  for(i=0;i<2000;i++)
    for(j=0;j<1335;j++) ;
}
void ADCInit(void)
{
  ATD0CTL2=0x42;   //禁止外部触发, 中断允许   
  ATD0CTL3=0x08;   //每次转换1个序列, No FIFO, Freeze模式下继续转   
  ATD0CTL4=0x01;   //10位 采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]=2M
  ATD0CTL5=0x80;   //右对齐无符号 6:0特殊通道禁止,5:1连续转换 ,4:0单  通道轮流采样
  ATD0DIEN=0x00;   //禁止数字输入
}
word AD_wData = 0;

void main() {
  float voltage;
  DisableInterrupts;
  ADCInit();   
  
  EnableInterrupts;
  for(;;)
  {
    voltage = (float)AD_wData * 2.5 /1024;// 计算电压值
   }
}

#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 22 Int_AD0(void)
{
   DisableInterrupts;
   AD_wData = ATD0DR0;  //Read out the Result Register
  
      wait();
   EnableInterrupts;
}

调试时连接出错,很奇怪,求高手指教。。。。。。
谁有ATD中断程序,给我参考下也行。。。。。。谢谢

1

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
威望
198
贡献
34
兑换币
0
注册时间
2012-2-21
在线时间
0 小时
毕业学校
石家庄铁道大学
20#
发表于 2012-3-27 16:05:23 | 只看该作者
学习
回复 支持 反对

使用道具 举报

1

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
威望
198
贡献
34
兑换币
0
注册时间
2012-2-21
在线时间
0 小时
毕业学校
石家庄铁道大学
19#
发表于 2012-3-6 16:13:40 | 只看该作者
羡慕你,还刚起步
回复 支持 反对

使用道具 举报

1

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
483
威望
336
贡献
135
兑换币
0
注册时间
2011-2-21
在线时间
6 小时
18#
发表于 2011-5-21 21:20:31 | 只看该作者
还行
回复 支持 反对

使用道具 举报

10

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1519
威望
440
贡献
985
兑换币
0
注册时间
2011-3-12
在线时间
47 小时
17#
发表于 2011-4-23 17:13:09 | 只看该作者
学习学习
回复 支持 反对

使用道具 举报

2

主题

93

帖子

0

精华

高级会员

Rank: 4

积分
706
威望
448
贡献
194
兑换币
6
注册时间
2010-12-26
在线时间
32 小时
16#
发表于 2011-4-18 19:44:50 | 只看该作者
好啊
回复 支持 反对

使用道具 举报

9

主题

86

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1723
QQ
威望
349
贡献
1278
兑换币
10
注册时间
2010-11-15
在线时间
48 小时
15#
发表于 2011-4-11 16:53:42 | 只看该作者
我是菜鸟,楼主能解释一下这段吗
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 22 Int_AD0(void)
{
   DisableInterrupts;
   AD_wData = ATD0DR0;  //Read out the Result Register
  
      wait();
}
回复 支持 反对

使用道具 举报

12

主题

110

帖子

0

精华

高级会员

Rank: 4

积分
661
威望
354
贡献
95
兑换币
4
注册时间
2010-9-29
在线时间
106 小时
14#
发表于 2011-2-23 21:07:34 | 只看该作者
学习
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
威望
245
贡献
34
兑换币
0
注册时间
2011-1-10
在线时间
69 小时
13#
发表于 2011-1-12 14:09:41 | 只看该作者
学习一下~~~~
回复 支持 反对

使用道具 举报

2

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
QQ
威望
274
贡献
28
兑换币
0
注册时间
2010-3-7
在线时间
7 小时
12#
发表于 2010-7-7 10:20:51 | 只看该作者
学习
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:31 , Processed in 0.218162 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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