[其它应用] 第一次用SH79F1621定时器2定时一直进不去中断

[复制链接]
1182|9
 楼主| wangzsa 发表于 2017-9-9 20:00 | 显示全部楼层 |阅读模式
第一次用SH79F1621定时器2定时一直进不去中断
zhuww 发表于 2017-9-9 21:26 | 显示全部楼层
代码是啥
 楼主| wangzsa 发表于 2017-9-9 21:29 | 显示全部楼层


#include "intrins.h"
#include "absacc.h"
#include "SH79F1621.h"  //单片机特殊寄存器文件

bit f_025ms = 0;

void InitSystem(void)
{
        CLKCON = 0x60;  //使用外部振荡,系统时钟12分频
    TL2 = (65536-250)&0xff;                        //定时0.25ms
    TH2 = ((65536-250)>>8)&0xff;
    RCAP2L = (65536-250)&0xff;
    RCAP2H =  ((65536-250)>>8)&0xff;
    TCON = 0x00;
    T2CON = 0x00;     //时钟源设为系统时钟,定时器方式
    T2MOD  &= 0xfc;     //
    TF2 = 0;
    TR2   = 1;

    /*-----------------------------------------------------
    Interrupt
    -----------------------------------------------------*/
     IEN0 = 0x20;
     IEN1 = 0x00; //
}

/**/
//函数:主函数
//入口:
//出口:
/**/
void main(void)
{
        
    EA = 0;
    CLKCON = 0x60;

    InitSystem();
        ET2 = 1;
    EA = 1;   // 开总中断
    while(1)
    {
                if(f_025ms == 1)
                {
                        f_025ms = 0;
                }
    }
}

/**/
//函数:定时器T2中断  定时0.25ms
//入口:
//出口:
/**/
void IntTimer2(void) interrupt 5
{
    _push_(FLASHCON);
        TR2 = 0;
    TF2 = 0;
//    TL2 = (65536-250)&0xff;
//   TH2 = ((65536-250)>>8)&0xff;
//    RCAP2L = (65536-250)&0xff;
//    RCAP2H =  ((65536-250)>>8)&0xff;
    f_025ms = 1;
        TR2 = 1;
    _pop_(FLASHCON);
}
zhanglli 发表于 2017-9-9 21:33 | 显示全部楼层

首先肯定LZ没有仔细看手册
lium 发表于 2017-9-9 21:35 | 显示全部楼层

对啊,T2可以自动重装载的
guoyt 发表于 2017-9-9 21:38 | 显示全部楼层
仔细看手册就能搞定
 楼主| wangzsa 发表于 2017-9-9 21:39 | 显示全部楼层

谢谢!
我后来用了自动重载,如上面改过来了。也不能产生中断。帮忙分析下。谢谢了。
langgq 发表于 2017-9-9 21:51 | 显示全部楼层
中断服务函数里面要重新加载初值吧
langgq 发表于 2017-9-9 21:52 | 显示全部楼层
中断服务函数里面要重新加载初值吧
LianBinbing 发表于 2017-10-29 18:33 | 显示全部楼层
请问您的中断问题解决了嘛?我用sh17f3283也进不了定时中断,如果您的问题决绝了希望您能分享一下!谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部