智能车制作
标题:
编码器程序脉冲计数为0
[打印本页]
作者:
deng0620
时间:
2010-4-12 17:36
标题:
编码器程序脉冲计数为0
在用编码器测速时,用的是PT7口的脉冲累加器A,用串口将脉冲累加数pulse_cnt显示出来,但却一直为0,不知道原因,特把程序发上来,望高手指教、、、
#define BUS_FREQ 32000000 // 总线频率超频至32 MHz
#define TIM_FREE_CLK (BUS_FREQ / 128)
#define TIM_INT_PER_SEC 25 // 每秒中断次数
#define TIM_CHANNEL_CNTS (TIM_FREE_CLK / TIM_INT_PER_SEC)
unsigned int pulse_cnt;
void PACN_init(void)
{
PACTL_PAEN = 0;
PACN32 = 0x0000; //脉冲累加器A寄存器清零
PACTL_PAMOD = 0;
PACTL_PEDGE = 1; //上升沿
PACTL_PAEN = 1; //使能脉冲累加器A
}
void Time_init(void)
{
TSCR1 = 0x90; //使能定时器
TSCR2 |= 0x07; //预分频系数为128
TIOS |= 0x01; //第一通道做输出比较
TC0 = (int)(TCNT + TIM_CHANNEL_CNTS);
TCTL1 |= 0x01;
TIE |= 0x01;
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 TIM(void)
{
TC0 = (int)(TCNT + TIM_CHANNEL_CNTS);
pulse_cnt = PACN32;
PACN32 = 0;
}
#pragma CODE_SEG DEFAULT
作者:
chaoyueziwo
时间:
2010-4-16 16:43
中断序列号错了 通道0为8 依次往上加就可以了
作者:
kurui365
时间:
2010-4-16 19:43
回复
2#
chaoyueziwo
请教一下,那个中断的序号是怎么确定的?本人是菜鸟,一直没搞明白这个序号的问题
作者:
xiaoyang06022
时间:
2010-4-17 00:11
作者:
fengnan
时间:
2010-5-7 20:00
测速中断子程序中就是8 这些数据手册中也有
作者:
fengnan
时间:
2010-5-7 20:00
测速中断子程序中就是8 这些数据手册中也有
作者:
xiaohaipolang
时间:
2010-5-10 17:29
作者:
piqiang
时间:
2010-5-10 20:59
看看
作者:
piqiang
时间:
2010-5-10 20:59
学习学习
作者:
liuzhiyu
时间:
2010-5-12 22:24
参考下呵呵呵呵好
作者:
mayimianmian
时间:
2011-4-26 08:39
邓哥 呵呵 遇见了
作者:
zhwmakeit
时间:
2011-4-26 14:33
???
作者:
luweihao
时间:
2011-6-1 06:38
遇到同样问题,应该是中断优先级问题
作者:
luweihao
时间:
2011-6-1 06:39
你用的是XS128 的80引脚系统板吗
作者:
黄明小伙仔
时间:
2011-9-28 23:30
学习学习
作者:
369185748
时间:
2012-1-10 18:23
看看
作者:
wangxun7990
时间:
2012-3-3 11:09
:)
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2