智能车制作

标题: PIT中断问题 [打印本页]

作者: Originition    时间: 2012-5-12 23:21
标题: PIT中断问题
本帖最后由 Originition 于 2012-5-12 23:23 编辑

void init_PIT(){
PITTF_PTF0=0;
PITMTLD0=49;     //为0通道8位计数器赋值
PITLD0=639;     //为0通道16位计数器赋值   //(49+1)*(639+1)=3200000个总线周期=0.1秒
PITMUX_PMUX0=0;   //第0通道使用微计数器0
PITCE_PCE0=1;     //第0通道计数器工作

PITINTE_PINTE0=1; //0通道定时器定时中断被使能
PITCFLMT=0X80;    //使能周期中断定时器
}

#pragma CODE_SEG __NEAR_SEG NON_BANKED
各位车友能否帮我看看这段配置,我这个一初始化,PTF0,就会被置1,不知道是怎么回事了~??
在全芯片模拟仿真中都不会出现这样何种情况~~~!
晶振是16M,总线32M



作者: 大同农村人    时间: 2012-5-13 10:32
你的第一步是干什么的,PITTF_PTF0写0是无效的吧。书上说:当16位定时器计数和8位微定时器计数递减到0时,相应位的标志位被置1.不过应该没问题吧,我初始化的和你的差不多,只是没第一条,我也刚学,呵呵,可能没起到作用
作者: Originition    时间: 2012-5-13 21:49
大同农村人 发表于 2012-5-13 10:32
你的第一步是干什么的,PITTF_PTF0写0是无效的吧。书上说:当16位定时器计数和8位微定时器计数递减到0时,相 ...

确实是没有作用,我现在唯一能做的就是想中断了就把PIE打开,中断完了再把PIE写零清除



作者: 大同农村人    时间: 2012-5-14 20:42
Originition 发表于 2012-5-13 21:49
确实是没有作用,我现在唯一能做的就是想中断了就把PIE打开,中断完了再把PIE写零清除

那把第一行去掉之后还一样么?应该不会出问题的。PTF0只有在通道发生了溢出中断才会置1

作者: Originition    时间: 2012-5-14 23:03
大同农村人 发表于 2012-5-14 20:42
那把第一行去掉之后还一样么?应该不会出问题的。PTF0只有在通道发生了溢出中断才会置1

还是那个样子,没办法了,去了也没用~,配置完就直接被置一了~~还是很纠结啊~!

作者: 大同农村人    时间: 2012-5-15 14:40
Originition 发表于 2012-5-14 23:03
还是那个样子,没办法了,去了也没用~,配置完就直接被置一了~~还是很纠结啊~!

o ,我也不知道了。。。。。




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