求助!STC只要一开启 定时器1信号输出,程序就死了

2020-01-18 18:41发布

本帖最后由 dyjhy 于 2016-3-19 08:48 编辑

想把定时器1的信号从P3.4口硬件输出。设置如下:

AUXR |=0x40; //定时器时钟1T模式
TMOD &=0x0f;         //T1用作定时器         16位自动加载
               
TL1=-0x55;
TH1=0x66;

ET1=0;//定时器1中断关闭。               
TR1 = 1;        //定时器1开始计时

INT_CLKO |=0x02;         //使能P3.4口的定时器1的时钟输出功能

把最后一句注释掉程序正常,只是P3.4口没信号输出。但只要把后一句加上,让P3.4口输出信号,程序就死了,任何操作都没反应,但用示波器看P3.4口有定时器1信号电平输出。P3.4没外接其它电路。

我考虑有两点可能:1 可能是定时器1硬件输出打开后会进入中断然后就出不来了,但我已经把定时器1的中断关了呀。
                           2 可能是定时器1硬件输出打开后跟其它定时器有冲突,从而使其它定时器不正常,从而使按键、显示什么的不能正常工作。 按键、显示、延时什么的都是用定时器0的,也换成过定时器2,但问题依旧。 这个可能性感觉不大。

不知哪位朋友知道问题出在哪里?帮忙说一下,困在这里一天了。谢谢!!



不好意思,已经解决。   板子原来是有编码器的,后来去掉了。但程序中忘了把它的扫描程序删掉了(我自己以为是去掉了,呵呵),刚好P3。4口就是用在编码器上的。 谢谢大家的回复。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
xiaobendan
2020-01-19 13:25
可能是芯片的问题吧,我用15W408的一个板子,是用T1的,刚才插入一条打开T1输出在P3.5上面,但是没有任何输出产生,但是T1的中断都正常。就是INT_CLKO |= 0X01;没有任何作用。

然后我启用T0,和你的一样,没开中断,有输出在P3.4,但是T1的中断都没有了,死在哪儿了不知道。奇怪的是逐条屏蔽,首先是INT_CLKO |= 0X02;但是一样程序没有运行,但是也没测量是否有输出,直到屏蔽了TMOD |= 0X0F;之后,T1的中断正常了。

只能先实验到这里了。

一周热门 更多>