[求助]新手刚接触MC908QY4做溢出中断时时间不准,望示教谢谢
- UID
- 167647
- 性别
- 男
|
TSC=0x45; 改为TSC=0X06 时定时计数一直开着不会关断,如:我想让某个脚定时经过几分钟后不会关断。请各位帮我解答修改一下,谢谢! |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
不太明白你的意思。TSC不管是0x45还是0x06都不会关断定时器,只是中断允许不同,而且分频率也不同。 |
|
|
|
|
|
- UID
- 167647
- 性别
- 男
|
不好意思我没说清楚。
我的意思是:做个10分钟以内定时如:
if(TIMER2S5>1000) //延时
{
LED_OUT;
TIMER2S5=0;
}
以上应该如何设置犹如AVR芯片比较简单:
ISR(TIMER0_OVF_vect)
{
TCNT0=100;
TIMER2S1++;
TIMER2S2++;
TIMER2S3++;
TIMER2S4++;
TIMER2S5++;
...
void time0_init(void)
{
TCCR0 = 0x03; //定时器0分频系数为1/64
TIMSK |=0x01; //定时器中断屏蔽寄存器
} |
|
|
|
|
|
- UID
- 342962
- 性别
- 男
|
应该是这样吧:
ISR(TIMER0_OVF_vect)
{
TCNT0=100; // what's this ?
if(TIMER2S1++ >=255)
{TIMER2S1 = 0;
if(TIMER2S2++ >= 255;
{TIMER2S2 = 0;
TIMER2S3++;
}
}
}
...
|
|
|
|
|
|
- UID
- 167647
- 性别
- 男
|
谢谢你们,我指的是Freescale 的MC908QY4,AVR用:
ISR(TIMER0_OVF_vect)
{
TCNT0=100;
TIMER2S1++;
TIMER2S2++;
TIMER2S3++;
TIMER2S4++;
TIMER2S5++;
...
void time0_init(void)
{
TCCR0 = 0x03; //定时器0分频系数为1/64
TIMSK |=0x01; //定时器中断屏蔽寄存器
}
可以搞定,可是Freescale不一样的 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
你现在的问题是什么,不产生中断还是定时不准?你的主中断屏蔽标志I清了吗? |
|
|
|
|
|
- UID
- 167647
- 性别
- 男
|
你好版主!现在问题是时间不准,不知以下代码哪里出错,望指正修改 谢谢 interrupt void _TOF_Interrupt(void) { TSC_TOF=0; TMOD=50000; //设置预置寄存 TIMER2S1++; TIMER2S2++; TIMER2S3++; TIMER2S4++; TIMER2S5++; .....
} void time0_init(void) { TSC=0x06; TSC_TOIE=0X01;
} [此贴子已经被作者于2007-8-30 12:44:31编辑过]
[此贴子已经被作者于2007-8-31 9:14:22编辑过] |
|
|
|
|
|
- UID
- 167647
- 性别
- 男
|
[求助]新手刚接触MC908QY4做溢出中断时时间不准,望示教谢谢
程序如下可否实现: ......... unsigned char TIMER2S1; unsigned char TIMER2S2; unsigned char TIMER2S3; unsigned char TIMER2S4; unsigned int TIMER2S5; ...... /*----------------------------------------------------------------------------- 定时器/计数器0溢出中断 ------------------------------------------------------------------------------*/ interrupt void _TOF_Interrupt(void) {
TMOD=50000; //设置预置寄存 TIMER2S1++; TIMER2S2++; TIMER2S3++; TIMER2S4++; TIMER2S5++; .....
} void time0_init(void) { TSC=0x45; //设置允许定时器溢出中断,设置分频因子为2
TCNT|=0X01; } 可是我这样做只能实现几毫秒,如何做才能做到10分钟?请各位帮小弟修改,再此谢过了! [此贴子已经被作者于2007-8-28 14:52:12编辑过] [此贴子已经被作者于2007-8-29 18:09:31编辑过]
[此贴子已经被作者于2007-8-31 9:15:16编辑过] |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
清TOF应该要先读TSC,然后对TOF写0。另外,你的TMOD是什么,为什么每次中断都要置数?TIMER2S1~TIMER2S5又有什么区别? |
|
|
|
|
|