为何不进中断
代码如下:/**************************************************************************************************
** 函数名称:void Time2Init(unsigned char TimeValue)
** 函数功能:定时器2
** 输入参数:unsigned char TimeValue// 定时器值 _1ms _10ms _50ms
** 输出参数:-
** 函数返回:-
** 函数说明:-
**************************************************************************************************/
void Time2Init(unsigned int TimeValue)
{
TR2 = 0; // 停止定时器2
RCAP2L = TimeValue & 0xff; // 定时器值低字节
RCAP2H = (TimeValue>>8) & 0xff; // 定时器值高字节
TL2 = TimeValue & 0xff;
TH2 = (TimeValue>>8) & 0xff;
T2MOD |= 0x00; // 采用系统12分频作为定时器时钟 配置为16位重载定时器
ET2 = 1; // 使能定时器2中断
TF2 = 0; // 首次清除中断标志
TR2 = 1; // 启动定时器2
}
/**************************************************************************************************
** 函数名称:void Time2Server(void)
** 函数功能:定时器2中断服务函数
** 输入参数:-
** 输出参数:-
** 函数返回:-
** 函数说明:-
**************************************************************************************************/
void Time2Server(void) interrupt 5
{
TR2 = 0; // 停止定时器2
TF2 = 0; // 清除中断标志位
// 用户代码
if(T1) T1--;
if(T2) T2--;
if(T3) T3--;
K2 = ~K2;
// 用户代码
TR2 = 1; // 启动定时器2
}
使能P1.7口的输出时 P1.7口有波形输出 但并不进中断
配置无明显问题
嗯,T2CON的bit0 CP/RL2是否为“0” 选择为16重载的定时及计数器
不要忽略 总的中断开关EA是否有置“1”
EA没有置1吧
看看定时开关是否有问题呢???
对照看看
ET2 = 1; // 使能定时器2中断
TF2 = 0; // 首次清除中断标志
TR2 = 1; // 启动定时器2
这几行代码是否有问题呢? 仿真器看一下不就知道了嘛
总中断开了没有
嗯,我再好好缕一缕吧,有了好消息及时通知大家
用仿真器检查一下 你没有进行全局中断打开操作。当然不会进入到中断中了。
全局中断没有打开,当然就无法进入到中断中了。
你没有开全局中断吧,需要开全局中断才可以的。
使能总中断了没有 全局中断没有打开 向量指过去了吗 开启中断使能呀 中断使能的代码在哪里
页:
[1]