智能车制作
标题:
有关XS128的ECT模块
[打印本页]
作者:
swfc_qinmm
时间:
2010-7-8 16:07
标题:
有关XS128的ECT模块
本帖最后由 swfc_qinmm 于 2010-7-8 16:11 编辑
想利用ECT模块捕捉霍尔传感器的脉冲信号,并在进入中断时LED灯亮灭闪烁,但是好像没捕捉到,LED等没变化!希望大家帮助看看,部分代码如下:
void PT0_Capture_Init(void) //ECT初始化,使用其输入捕捉功能,捕捉霍尔传感器的脉冲数
{
TSCR1_TFFCA = 1; //自动清除标志位
TIOS = 0XFE; //通道0为输入捕捉
TSCR2 = 0X87; //24MHZ/128 = 187.5KHZ计数频率,定时溢出中断使能
TCTL4 = 0X02; //通道0仅在下降沿捕捉
TIE_C0I = 1; //通道0中断使能
TSCR1_TEN = 1; //主定时器使能
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 PT0_Capture(void)
{
TFLG1_C0F = 1;
Pulse_Num++;
PORTB_PB0 = ~PORTB_PB0;
}
作者:
swfc_qinmm
时间:
2010-7-8 16:08
大家多多指教哦,谢谢了……
作者:
swfc_qinmm
时间:
2010-7-9 20:07
大家多多帮助哦……
作者:
kefeng19
时间:
2010-7-9 20:15
捕捉 脉冲个数 好像很慢哦。。。为什么不用检测脉宽的方法呢。。
作者:
swfc_qinmm
时间:
2010-7-9 21:27
回复
4#
kefeng19
谢谢,请问你说的脉冲宽度捕捉是什么意思?能说的详细一些吗?
作者:
kefeng19
时间:
2010-7-9 21:39
使用脉冲累加器 两个关键语句给你
PACTL=0x7c;//使能PAI ,门控时间累加模式,禁止溢出中断,PAIF置位中断
//时钟选择PACLK
void test_speed(void)
{
if(PAFLG_PAOVF==1)
{
PACNT=0;
PAFLG=0x03;
}
else if(PAFLG_PAIF==1)
{
//PACTL_PAI=0;
//speed=TCNTH;
speed=PACNTH;
//TCNT=0;
PACNT=0;
PAFLG=0x03;
// test(speed);
// PACTL_PAI=1;
}
} */
你参考下吧,我去年用的是这种模式,今年不是。今年我的是硬件测速。。。
作者:
swfc_qinmm
时间:
2010-7-9 21:46
回复
6#
kefeng19
谢谢了……有问题在请教你!谢谢……
作者:
GhostStalker
时间:
2010-7-15 10:45
用 Pulse Accumulator就行了~
这个方法也可以 我以前也是这么弄的
后来看DS发现Pulse Accumulator就改了~
作者:
清水鱼儿
时间:
2010-7-21 08:47
很好
作者:
似曾相识
时间:
2011-2-20 08:51
HAO
作者:
阳光...海岸
时间:
2012-3-1 11:25
找到了
maichong =(PACNTH<<8)+PACNTL;
作者:
雪男
时间:
2012-4-5 20:55
谢啦
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2