智能车制作
标题:
PIT定时器中断的问题
[打印本页]
作者:
meijj1990
时间:
2011-3-4 15:53
标题:
PIT定时器中断的问题
本帖最后由 meijj1990 于 2011-3-4 16:06 编辑
我用PIT写了一个中断
#pragma CODE_SEG __NEAR_SEG NON_BANKED //利用中断来分时点亮
void interrupt 66 PIT0_ISR(void)
{
PITTF_PTF0=1;
sen_count++;
if(sen_count==1)
PORTA=0X00;
if(sen_count==2)
PORTA=0X04;
if(sen_count==3)
PORTA=0X10;
if(sen_count==4)
PORTA=0X14;
if(sen_count==5)
PORTA=0X40;
if(sen_count==6)
PORTA=0X44;
if(sen_count==7)
sen_count=1;
}
为什么PITTF_PTF0=1;只能放在中断的一开始?我最先将这句话放在末尾,结果编译没问题,但是下到车子上去运行就不能正确显示,改到中断开头就没问题了。这是为什么?
作者:
meijj1990
时间:
2011-3-6 16:43
额...
作者:
zhjb1
时间:
2011-3-9 07:48
分析你的问题可能出在PIT初始化程序有问题,我就是在结束时加这条的。
作者:
meijj1990
时间:
2011-3-9 17:50
回复
4#
zhjb1
我也看到过这句话放在最后一句的情况,一点问题都没有,这是我们车子的初始化程序
void PIT0_Init(void)
{
PITCFLMT_PITE=0; //disable PIT
PITCE_PCE0=1; //enable timer channel 0
PITMTLD0=(96-1); //time base 480 clock cycles ,it's 0.1M Hz
PITMUX=0X00; // ch0 connected to micro timer 0
//time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
PITLD0=(100-1); // 定时时间=96/48M*100=0.2ms
PITINTE_PINTE0=1; //enable interupt channel 0
PITCFLMT_PITE=1; //enable PIT
//PITCNT0,类似于自由记数器TCNT,只不过一直是递减,TCNT是一直递增
}
但是我觉得我的初始化没什么问题,你看有问题吗?
作者:
傲风飞扬
时间:
2011-3-10 15:52
初始化而已……
作者:
1637557819
时间:
2012-4-29 15:53
估计是 初始化 的问题
作者:
栗子kary
时间:
2012-5-16 23:22
、、
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2