求助!STC只要一开启 定时器1信号输出,程序就死了
本帖最后由 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口就是用在编码器上的。 谢谢大家的回复。 看程序好像没啥问题,测试下改为12T模式,换定时器0,换个单片机都是什么效果 还有就是删除所有不相关代码, 楼主用 的哪一款芯片? 15F2K60S2,打电话给厂家了,说ic没这个缺陷的 q457344370 发表于 2016-3-19 07:11
还有就是删除所有不相关代码,
把定时器1的中断函数删了也一样,把定时器0改成定时器2也一样 可能是芯片的问题吧,我用15W408的一个板子,是用T1的,刚才插入一条打开T1输出在P3.5上面,但是没有任何输出产生,但是T1的中断都正常。就是INT_CLKO |= 0X01;没有任何作用。
然后我启用T0,和你的一样,没开中断,有输出在P3.4,但是T1的中断都没有了,死在哪儿了不知道。奇怪的是逐条屏蔽,首先是INT_CLKO |= 0X02;但是一样程序没有运行,但是也没测量是否有输出,直到屏蔽了TMOD |= 0X0F;之后,T1的中断正常了。
只能先实验到这里了。 那里弄错了。。1T
页:
[1]