标题:
这个单片机定时器中断怎么了?
[打印本页]
作者:
v115488
时间:
2022-4-10 16:42
标题:
这个单片机定时器中断怎么了?
思路及目标:使用T1定时计数器,设定1毫秒溢出.
在中断服务函数里,用全局变量delay1ms进行累加计数
初始化及TR1在主函数开启的
现在调用初始化及打开TR1=1;后.全局变量delay1ms没有自加.
大家帮忙看看哪里的问题:::
#include "ISR.h"
unsigned int delay1ms=0;
/*--------------------------------------------------------------------------
函数名: Timer1Init()
功 能: 定时/计数器1的初始化
参 数: 无
返回值: 无
--------------------------------------------------------------------------*/
void Timer1Init(void)
{
TMOD=0x50;
TH1=0xfc;
TL1=0x18;
TF1=0;
ET1=1;
EA=1;
}
/*******************************************************************************
* 函数名 :
* 函数功能 :中断服务函数
* 输入 :接受数据中断
* 输出 :
中断说明: 1,中断服务函数一定是一个没有返回值的函数
2,中断服务函数一定是没有参数的函数
3,中断服务函数函数名后跟关键字 interrupt
4,interrupt n (0-4)共5个中断源
5,中断服务函数不能被主程序或其他程序所调用
6,n 后面跟 using m (0-3)工作寄存器组
*******************************************************************************/
void Timer1_ISR() interrupt 3
{
TF1=0;
delay1ms++;
TH1=0xfc;
TL1=0x18;
}
作者:
v115488
时间:
2022-4-10 17:49
找到问题了,TMOD设定搞错了C/T位,设置成了计数模式.TMOD=0x10就可以了,
作者:
v115488
时间:
2022-4-10 17:50
打扰了各位,我们江湖再见^^^^^^^
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1