打印

12C508计数器的应用问题,请各位高手帮忙分析

[复制链接]
2838|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
windlrh|  楼主 | 2007-7-28 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我写的部分程序,初始化部分是从汇编中移过来的(汇编的程序是能运行,这是前提),问题是在利用计数器作计数延时时,延时函数不能变化,我的测试是GP4驱动LED作一亮一灭的变化,但是延时不能产生应有的时间,计数源是利用外接50HZ的变压器交流信号。LED一直是亮的,没产生灭的现象,请各位看看我的程序是哪里出了问题?初始化么?希望大家给点建议,或者给个参考,谢谢拉!

//初始化
void  InitPIC(void)
{
    OPTION =0xE0;        //1110 0000   TOSE=0,TOSC=1,PSA=1
    TRIS=0x1c;      //0001 1100                  
       TMR0=0    ;        //计数置0
}


//********利用50HZ交流信号作计数输入信号***********************
//         0.02*2*250=10s
void delay_count()    
{
         //TMR0=0;              //这句存在与不存在是一样的结果
    CLRWDT() ;                    //WDT清0
    while(TMR0==0Xfa);         
    {
       TMR0=0;
    }
}
沙发
兰天白云| | 2007-7-31 07:52 | 只看该作者

驱动GP4的部分呢?

使用特权

评论回复
板凳
dcp| | 2007-8-24 13:04 | 只看该作者

做定时扩展吧

使用特权

评论回复
地板
平艳| | 2007-9-23 15:20 | 只看该作者

re

首先明确 OPTION =0xE0;        //1110 0000   TOSE=0,TOSC=1,PSA=1
是绝对的错误。如没有分频可取0xcf   //TOSE=0 TOCS=0
其二 while(TMR0==0Xfa);         
    {
       TMR0=0;
    }
这一部份不知道是你笔误还是刻意这样写的。while();的这个";"号就是停在此处了。但后面的{}又是什么呢??从你的意思中我可以看出,是当TMR0==0xfa时清0,那么";"就应去掉。
你按我这样再试试。我已用SIM测试过没有问题。请注意TMRO的查询时间!!

使用特权

评论回复
5
hjh002| | 2007-9-24 01:03 | 只看该作者

呵呵,都不对。

OPTION=0xE0 是没有问题的,
有问题的是WHile循环,要明白,WHile循环的原理,是当whle(条件结果为真)时执行循环体里的程序,按LZ的程序,如果while(TMR0==0Xfa); 后面的“;”不是错误的话,后面的{}两个符号是多余的,因为只有当TMR0==0Xfa时才执行一个循环判断的程序,所以大部分时间是根本不执行这个循环体,直接跳到后面的“TMR0=0;”去了,所以达不到延时的目的,程序可改为:
void delay_count()    

    TMR0=0; 
    
    while(TMR0 < 0Xfa)
    {
        CLRWDT() ;                    //WDT清0
    }
    TMR0=0;
    
}

使用特权

评论回复
6
平艳| | 2007-9-24 09:04 | 只看该作者

re

0xe0绝对错误,定时器0打开是TOSC=0,的条件.如果这个条件都不成立就根本谈不上定时了。
http://pwfd.blog.**/

使用特权

评论回复
7
hjh002| | 2007-9-24 13:17 | 只看该作者

RE 平艳

是TOCS 非TOSC,这个位并不是定时器0的开关,只是定时器时钟源的选择位。TOCS=1时是选择外部时钟源,LZ也说了用外部的50HZ交流信号。好象没听说PIC的定时器能关掉的。

使用特权

评论回复
8
平艳| | 2007-9-24 13:38 | 只看该作者

不好意思,没看清前提,是外部.那就没有问题。

不好意思,没看清前提,是外部.那就没有问题。那就是while有问题

使用特权

评论回复
9
sunlimcu| | 2007-9-26 10:44 | 只看该作者

就是while有问题!

使用特权

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

本版积分规则

5

主题

22

帖子

2

粉丝