打印

请问PIC12F508的没有溢出标志的TMR0怎么用?(急)

[复制链接]
3373|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
夜阑冰凌|  楼主 | 2011-11-11 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC12F508的TMR0没有溢出标志,请问怎么使用TMR0实现精确定时?
比如我想实现4和3秒的定时,实现灯LED1亮3秒灭掉,接着LED2亮4秒灭掉,LED1再亮3秒,
使用TMR0定时,请哪位高手高手高高手花个几分钟时间用C语言写个使用TMR0定时的程序!

   不胜感激!!!
沙发
asspeed| | 2011-11-11 16:28 | 只看该作者
非常非常非常精确是不可能的....................................

使用特权

评论回复
板凳
wm20031015| | 2011-11-11 19:54 | 只看该作者
秒级没有问题,用循环实时查询寄存器

使用特权

评论回复
地板
Light_David| | 2011-11-12 20:20 | 只看该作者
12F508這顆芯片算比較另類的了,整個芯片就幾個內核寄存器,方嚮寄存器和選項寄存器用兩個專用的指令來實現(沒辦法讀)弄個雞肋的T0確沒有溢出標識可以用,那還要它搞什麽?....真抓狂,呵呵:lol

使用特权

评论回复
5
xaq79| | 2011-11-12 22:43 | 只看该作者
动动脑子,其实很简单,

使用特权

评论回复
6
夜阑冰凌|  楼主 | 2011-11-14 10:25 | 只看该作者
没有 高手帮忙具体写下吗?

使用特权

评论回复
7
xaq79| | 2011-11-14 10:38 | 只看该作者
在TMR0未溢出前,查询TMR0,根据TMR0值来判断时间,

使用特权

评论回复
8
yewuyi| | 2011-11-14 10:47 | 只看该作者
void main(void)
{
InitTMR0();
while(1){
           if(TMR0已经发生定时翻转){}
           else{}
           }
}

使用特权

评论回复
9
夜阑冰凌|  楼主 | 2011-11-14 13:34 | 只看该作者
8# yewuyi
请问 怎么确定已经发生定时翻转?
   有人说是查询反转方式,但是我还是不明白具体该怎么写?请详加指导!!

使用特权

评论回复
10
yewuyi| | 2011-11-14 14:22 | 只看该作者
8# yewuyi  
请问 怎么确定已经发生定时翻转?
   有人说是查询反转方式,但是我还是不明白具体该怎么写?请详加指导!!
夜阑冰凌 发表于 2011-11-14 13:34


比较定时器当前值和上一次的值的大小,如果当前值大于等于上一次值,则说明没有反转,否则即为翻转

使用特权

评论回复
11
夜阑冰凌|  楼主 | 2011-11-14 16:33 | 只看该作者
比较定时器当前值和上一次的值的大小,如果当前值大于等于上一次值,则说明没有反转,否则即为翻转
yewuyi 发表于 2011-11-14 14:22


void time0()
{
        if(TMR0 < timer)
        {
                ms += 0x4000;
        
        }
        else
        {
                tmr0=timer;
        }        
}
void time()
{
        if(ms>0xc350){ms-=0xc350;ms_50++;}
        if(ms_50>20){ms_50=0;s++;}
        if(s==3)
        {t1=1;}
        if(s>7){s=0;t2=1;}        
}
请问我这样写行吗? 定时器64分频,每次计满溢出用去64*256=16387=0x4000个指令周期,我让ms+=0x4000,如果ms>0xc350,说明过去50ms,ms_50>20,说明过去50*20=1秒,如果s=3 ,说明过去3秒,t1置1,s>7,t2置1,说明过去7秒,

请指点,我这样写有问题吗?

使用特权

评论回复
12
yewuyi| | 2011-11-14 20:35 | 只看该作者
不好意思,俺不喜欢看别人的代码,具体是否适用,自己可以动手实际演算一下。

另外,很多年前,俺也曾经在这个版面发过一个程序结构,那个帖子可能讲的更详细点,你自己翻翻看是否能找出来。

道理你应该已经明白,具体需要自己动手。

使用特权

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

本版积分规则

个人签名:天高任鸟飞 海阔凭鱼跃

1

主题

8

帖子

1

粉丝