[国产单片机] HT46F49E启动定时器24秒后定时器才正常工作

[复制链接]
947|3
 楼主| zhengmingming2 发表于 2015-3-15 16:54 | 显示全部楼层 |阅读模式
HT46F49E 单片机定时控制1个灯关闭和点亮,为什么电路板通电后24秒左右才正常4秒点亮4秒关闭,和其他单片机定时器使用好像有点不一样,晶振外置8M的,程序如下:
#include "HT46F49E.h"
char   i,j,k;
#pragma vector ISR_Timer0 @0x08  //定时器中断入口 void ISR_Timer0(void)   //定时器中断子程序
{
        i++;
        _tmr=0x00;
        if(i==100) { j++; i=0; }
        if(j==10)  { k++; j=0; }       
}

void main()
{
_pac=0x00;//从右向左数第一个为pa0 也就是最后一个0
_pbc=0x00;//定义PB口为输出  0为输出 1为输入
_pbc=0x00;
_pcc=0x00;
_pdc=0x00;

  _tmr=0x00;  //定时器初值设置为0 这个初值装多少才为1us溢出,RC振荡 4M  8M  分别是多少
  _tmrc=0x83; //定时器控制器控制设置
  _eti=1;          //开定时器中断开关
  _emi=1;     //开总中断开关
  _ton=1;     //开启定时器
  _pb2=0;//关闭制水灯
while(1)
   {
   
    if(k==10)
    {
     _pb2=1;//点亮制水灯刚通电24秒才亮,后面就4秒一个循环不知为什么       
           
    }
   
    if(k==20)
    {
     _pb2=0;//关闭制水灯
     k=0;       
    }
    _clrwdt();//看门狗清0
   
    }
  }
 楼主| zhengmingming2 发表于 2015-3-15 17:12 | 显示全部楼层
在void main()下面括号内加入了k=0就正常了,现在想请教一下 在RC  4M  8M _tmr=多少的初值才1us溢出?谢谢指教!
JY-DX-JY 发表于 2015-3-25 14:46 | 显示全部楼层
手册上没有吗?
 楼主| zhengmingming2 发表于 2015-4-17 10:03 | 显示全部楼层
好了,是看门狗的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

28

帖子

4

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