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

[复制链接]
1063|8
 楼主| 冰清玉洁 发表于 2017-1-15 19:13 | 显示全部楼层 |阅读模式
sh79f166a的定时器用不了
wenfen 发表于 2017-1-15 19:15 | 显示全部楼层
楼主详细说说怎么回事啊,这么说太笼统了
 楼主| 冰清玉洁 发表于 2017-1-15 19:17 | 显示全部楼层
只是让灯一闪一闪而已。。。

#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;        
}
zhuhuis 发表于 2017-1-15 19:19 | 显示全部楼层
你的T2是16位自动重装载模式,重装载寄存器似乎没有初始化呢。
tian111 发表于 2017-1-15 19:21 | 显示全部楼层
建议把数据手册中定时器部分仔细看一遍,看看哪些寄存器要初始化。你多等一会,只是时间很长而已。
宋倩2010 发表于 2017-1-15 19:24 | 显示全部楼层

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

需手动清除
 楼主| 冰清玉洁 发表于 2017-1-15 19:29 | 显示全部楼层
哪儿啊?我怎么没有找到。。。
chenho 发表于 2017-1-15 19:31 | 显示全部楼层
在中断程序中加一条

TF2 = 0;      即可。
 楼主| 冰清玉洁 发表于 2017-1-15 19:33 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

307

主题

3250

帖子

5

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