打印
[其它应用]

sh79f166a的定时器用不了~~~

[复制链接]
1848|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
月夜之下|  楼主 | 2015-6-15 17:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这定时器,搞不定啊,求大虾指点。。。OTZ

只是让灯一闪一闪而已。。。

#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;       
}
沙发
lfwag| | 2015-6-18 09:32 | 只看该作者
这个单片机晶振不需要初始化?没有内部看门狗之类么?如果有的话你怎么没设置。
在线仿真看下就知道了。看程序运行到那里没有。如果有,但是不是预期的,那检查硬件或者软件是不是端口定义错误;如果没有,检查软件。

使用特权

评论回复
板凳
gx_huang| | 2015-6-19 11:07 | 只看该作者
你的T2是16位自动重装载模式,重装载寄存器似乎没有初始化呢。
建议把数据手册中定时器部分仔细看一遍,看看哪些寄存器要初始化。你多等一会,只是时间很长而已。

使用特权

评论回复
地板
jpxjpxjpx| | 2015-6-19 16:02 | 只看该作者
哥们,资料没有读透哦

使用特权

评论回复
5
laoxu| | 2015-6-21 17:02 | 只看该作者

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

需手动清除,在中断程序中加一条

TF2 = 0;      即可。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

35

帖子

2

粉丝