智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4490|回复: 12
打印 上一主题 下一主题

菜鸟SOS!关于ECT的问题

[复制链接]

2

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
788
威望
444
贡献
148
兑换币
6
注册时间
2011-9-21
在线时间
98 小时
跳转到指定楼层
1#
发表于 2011-10-6 21:11:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本试验的辅助设备有:信号发生器、示波器。
试验目的:通过连续记录输入信号的两个上升沿,用该程序可以计算出输入
信号的频率;同时,利用脉冲累加器可以记录输入脉冲数。
#include <hidef.h> /* common defines and macros */
#include <mc9s12dp256.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"
int count=0;
float f;
double f1=2000000,first=0,second=0,n,N;
void main(void)
{
DisableInterrupts;
TSCR2=0X82;
PACTL=0X20;
TIOS=0XFE; //设定pt0 输入捕捉口
37
TCTL4=0X01;
ICSYS=0X0A;
PBCTL_PBEN=0X00;
ICPAR=0X01;
TIE=0X01;
TSCR1=0X80;
EnableInterrupts;
for(;;)
{; }
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void CH0IC(void)
{
first=TC0H;
second=TC0;
n=count*65535+second-first;
f=f1/n;
N=PA0H;
TFLG1=0X01;
count=0;
}
interrupt void TOI(void)
{
count++;
TFLG2_TOF=1;
}



各位大侠麻烦帮我看看两个中断函数nterrupt void CH0IC(void)和interrupt void TOI(void)究竟是什么意思啊???
可以的话中断函数的每一句都解释一下,耗了很久始终搞不懂啊!


感激不尽!!!

2

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
788
威望
444
贡献
148
兑换币
6
注册时间
2011-9-21
在线时间
98 小时
2#
 楼主| 发表于 2011-10-6 21:16:18 | 只看该作者
顶起,不要沉了,高手快来啊
回复 支持 反对

使用道具 举报

2

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
788
威望
444
贡献
148
兑换币
6
注册时间
2011-9-21
在线时间
98 小时
3#
 楼主| 发表于 2011-10-7 14:25:40 | 只看该作者
....
回复 支持 反对

使用道具 举报

4

主题

158

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1646
威望
818
贡献
378
兑换币
159
注册时间
2011-3-11
在线时间
225 小时
4#
发表于 2011-10-7 21:24:03 | 只看该作者
回复 支持 反对

使用道具 举报

4

主题

158

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1646
威望
818
贡献
378
兑换币
159
注册时间
2011-3-11
在线时间
225 小时
5#
发表于 2011-10-7 21:25:23 | 只看该作者
显然是要钱来的
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
6#
发表于 2011-10-7 21:55:34 | 只看该作者
第一个中断是捕捉中断,第二个中断是自由定时器的中断。其实中断程序的意思就是first存放通道0第一次捕捉的数值(第一次捕捉的数值被存放在保持寄存器中了),second存放第二次捕捉的数值,count存放的是自由时钟的周期数,计算外部信号周期的公式我个人认为有点问题,N就是存放脉冲数的。
回复 支持 反对

使用道具 举报

2

主题

41

帖子

0

精华

高级会员

Rank: 4

积分
788
威望
444
贡献
148
兑换币
6
注册时间
2011-9-21
在线时间
98 小时
7#
 楼主| 发表于 2011-10-8 15:59:57 | 只看该作者
回复 6# 凯撒星星


谢谢凯撒星星!!!你说计算外部信号周期的公式n=count*65535+second-first有问题,是不是出在count*65535这里啊?  我也觉得这个公式有问题,当两个上升沿之间的时间间隔大于自由时钟从0计数到FFFFH的时间间隔时,这个公式是有问题的;
但是当两个上升沿之间的时间间隔小于自由时钟从0计数到FFFFH的时间间隔时,我觉得这个公式就是行的。
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
威望
169
贡献
43
兑换币
4
注册时间
2011-10-7
在线时间
7 小时
8#
发表于 2011-10-8 16:29:20 | 只看该作者
回复 7# guohel
我认为那个公式应该整体乘以经过分频之后的总线时钟周期,因为自由定时器的计数寄存器是经过这个周期之后才加1的。例如:计数寄存器从1变到10所用的时间是(10-1)*(分频之后的总线时钟周期)。不知道我这想法对不对?
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
9#
发表于 2011-10-10 15:05:16 | 只看该作者
我也有类似的问题!!顶一下呀!!!!
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
10#
发表于 2011-10-10 15:05:29 | 只看该作者
顶呀
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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