定时器 输出 与预想中的差了1000倍

[复制链接]
 楼主| liujie14565 发表于 2013-4-8 10:01 | 显示全部楼层 |阅读模式
本帖最后由 liujie14565 于 2013-4-8 11:41 编辑

我用 PIC16F1936 使用内部振荡器 8M  或者 外部晶振 8M时  用定时器 示波器 观察 某个 引脚的电平变化 本来是定时20ms的周期  但是观察却只有20us的周期,  相差了整整1000 倍 不知道是啥原因.........
__CONFIG(FOSC_HS&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_OFF&CPD_OFF&BOREN_OFF&CLKOUTEN_OFF&IESO_OFF&FCMEN_OFF);
  __CONFIG(WRT_OFF&VCAPEN_OFF&PLLEN_OFF&STVREN_OFF&BORV_25&LVP_OFF);


void main()
{

     OSCCON=0x00;
    while(!OSTS==1);
    TRISA=0x00;
    LATA=0x00;
OPTION_REG=0x07;      //定时器选项寄存器   125预分频    11010010

    TMR0=0xb1;            //寄存器初值
    GIE=1;                //开总中断
    TMR0IE=1;             //允许定时器0中断         

}
void interrupt usart()
{
    if(TMR0IF==1&TMR0IE==1)  //TMR0   溢出中断标志位
    {
        TMR0=0xb1;   //寄存器初值
        TMR0IF==0;   //清0            
        LATA0=!LATA0;
    }   
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
弓长月月鸟 发表于 2013-4-8 10:58 | 显示全部楼层
TMR0IF==0;   //清0        有问题吗?
 楼主| liujie14565 发表于 2013-4-8 11:36 | 显示全部楼层
弓长月月鸟 发表于 2013-4-8 10:58
TMR0IF==0;   //清0        有问题吗?

没 问题
弓长月月鸟 发表于 2013-4-8 11:56 | 显示全部楼层
TMR0IF==0;   //清0  是不是写成 TMR0IF=0;   //清0
yklstudent 发表于 2013-4-8 12:05 | 显示全部楼层
TMR0IF==0;   //清0

看死人了 不仔细还真没注意到
 楼主| liujie14565 发表于 2013-4-8 12:30 | 显示全部楼层
本帖最后由 liujie14565 于 2013-4-8 13:13 编辑

我晕死  哎  是我的 粗心   非常感谢各位
弓长月月鸟 发表于 2013-4-8 12:31 | 显示全部楼层
解决问题就行啊,以前偶也犯过类似的错误。
huangxz 发表于 2013-4-8 16:01 | 显示全部楼层
哇,这编译器都没报错误?
 楼主| liujie14565 发表于 2013-4-8 16:25 | 显示全部楼层
huangxz 发表于 2013-4-8 16:01
哇,这编译器都没报错误?

就是嘛  真的没报错误 类  
储小勇_526 发表于 2013-4-8 17:27 | 显示全部楼层
避免犯类似错误。
杜专 发表于 2013-4-8 22:32 | 显示全部楼层
编译器 应该会报警告的
lark100 发表于 2013-4-8 23:09 | 显示全部楼层
 楼主| liujie14565 发表于 2013-4-9 11:41 | 显示全部楼层
杜专 发表于 2013-4-8 22:32
编译器 应该会报警告的

我看了一下 没报警
仰望星期五 发表于 2013-5-16 16:27 | 显示全部楼层
路过      避免自己也犯这样的错误啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

196

帖子

2

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