[其它应用] sh79f166a的定时器用不了

[复制链接]
128|8
 楼主 | 2018-7-6 17:48 | 显示全部楼层 |阅读模式
sh79f166a的定时器用不了
| 2018-7-6 17:51 | 显示全部楼层
楼主详细说说怎么回事啊,这么说太笼统了
 楼主 | 2018-7-6 17:53 | 显示全部楼层
只是让灯一闪一闪而已。。。

#include<sh79f166a.h>

void init_2(void);

void main()
{
        P0SS        =        0x00;                               //IO的初始化
        P0CR        =        0xff;
        P0PCR        =        0xff;
        P0                =        0xff;

        CLKCON  =   0x60;                         // 1Mhz,12分频

        init_2();                                        //定时器2设置

        while(1);
}

void time2_(void) interrupt 8           //延时,P0取反
{
        static char i,k;

        i++;
        if(i == 100)
        {
                k++;
                i = 0;
                if(k == 100)
                {
                        k = 0;
                        P0 = ~P0;
                }
        }
}


void init_2(void)        
{
        T2CON        =         0x00;
        TL2                =        0x29;
        TH2                =        0xff;
        IEN0        |=        0xa0;
        TR2                =        1;        
}
| 2018-7-6 17:56 | 显示全部楼层
你的T2是16位自动重装载模式,重装载寄存器似乎没有初始化呢。
| 2018-7-6 18:00 | 显示全部楼层
建议把数据手册中定时器部分仔细看一遍,看看哪些寄存器要初始化。你多等一会,只是时间很长而已。
| 2018-7-6 18:03 | 显示全部楼层

sh79f166a的定时器T2中断标志不会自动清除,

需手动清除
 楼主 | 2018-7-6 18:05 | 显示全部楼层
哪儿啊?我怎么没有找到。。。
| 2018-7-6 18:07 | 显示全部楼层
在中断程序中加一条

TF2 = 0;      即可。
 楼主 | 2018-7-6 18:10 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表