[其它应用]

sh79f166a的定时器用不了

[复制链接]
691|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

粉丝