智能车制作

标题: 菜鸟SOS!关于ECT的问题 [打印本页]

作者: guohel    时间: 2011-10-6 21:11
标题: 菜鸟SOS!关于ECT的问题
本试验的辅助设备有:信号发生器、示波器。
试验目的:通过连续记录输入信号的两个上升沿,用该程序可以计算出输入
信号的频率;同时,利用脉冲累加器可以记录输入脉冲数。
#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)究竟是什么意思啊???
可以的话中断函数的每一句都解释一下,耗了很久始终搞不懂啊!


感激不尽!!!
作者: guohel    时间: 2011-10-6 21:16
顶起,不要沉了,高手快来啊
作者: guohel    时间: 2011-10-7 14:25
....
作者: woolf    时间: 2011-10-7 21:24

作者: woolf    时间: 2011-10-7 21:25
显然是要钱来的
作者: 凯撒星星    时间: 2011-10-7 21:55
第一个中断是捕捉中断,第二个中断是自由定时器的中断。其实中断程序的意思就是first存放通道0第一次捕捉的数值(第一次捕捉的数值被存放在保持寄存器中了),second存放第二次捕捉的数值,count存放的是自由时钟的周期数,计算外部信号周期的公式我个人认为有点问题,N就是存放脉冲数的。
作者: guohel    时间: 2011-10-8 15:59
回复 6# 凯撒星星


谢谢凯撒星星!!!你说计算外部信号周期的公式n=count*65535+second-first有问题,是不是出在count*65535这里啊?  我也觉得这个公式有问题,当两个上升沿之间的时间间隔大于自由时钟从0计数到FFFFH的时间间隔时,这个公式是有问题的;
但是当两个上升沿之间的时间间隔小于自由时钟从0计数到FFFFH的时间间隔时,我觉得这个公式就是行的。
作者: 凯撒星星    时间: 2011-10-8 16:29
回复 7# guohel
我认为那个公式应该整体乘以经过分频之后的总线时钟周期,因为自由定时器的计数寄存器是经过这个周期之后才加1的。例如:计数寄存器从1变到10所用的时间是(10-1)*(分频之后的总线时钟周期)。不知道我这想法对不对?
作者: 飞思卡尔835    时间: 2011-10-10 15:05
我也有类似的问题!!顶一下呀!!!!
作者: 飞思卡尔835    时间: 2011-10-10 15:05
顶呀
作者: 飞思卡尔835    时间: 2011-10-10 15:16
PACTL这个寄存器我觉得设置的有问题呢!PACTL=0X20;意思不就是PACTL_PAMOD=1的吗?可是要这个起作用的前提是PACTL_PAEN=1的 可是上面设置的是0呀!!那这句话岂不是没有意义了吗?
作者: 飞思卡尔835    时间: 2011-10-10 15:32
请问一下大侠们!哪个f1为什么给了一个初值  这个初值有什么作用呢?
f=f1/n;
N=PA0H;
这俩句啥意思呀????谢谢高手来解答!!!!
作者: 清明    时间: 2011-11-27 19:08





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2