打印
[国产单片机]

EMC单片机精确定时问题:

[复制链接]
2843|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
457878|  楼主 | 2007-6-27 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想得到26us的红外载波周期,但输出的实际周期是24.7us,为何,高手帮忙看看:


TCCVAL    EQU    220    ;256-220 = 36(52-8*2), 26us/at 4MHz/no prescale


SR_TCC:
        disi
        MOV     stack_a,a       ;Save the value of A,
        SWAP    stack_a        
        SWAPA   STATUS          ;Save the value of STATUS
        MOV     stack_s,a
        ;----------------------------------------------------------
        mov a,@TCCVAL        ;计数器初值 
        mov TCC,a

        LedOn        
        LedOff

    TCC_Out:
        ;----------------------------------------------------------
        SWAPA   stack_s         ;Restore the saved value of STATUS
        MOV     STATUS,a
        SWAPA   stack_a         ;Restore the saved value of A
        clr    intf

        reti

相关帖子

沙发
zjw5000| | 2009-9-25 12:09 | 只看该作者
这个要用示波器微调,修补差值

使用特权

评论回复
板凳
WANGJJ888| | 2009-9-25 13:28 | 只看该作者
如果是实时时钟,还是用专用定时IC准确

使用特权

评论回复
地板
谈的元| | 2009-9-27 22:29 | 只看该作者
mov a,@TCCVAL        ;计数器初值
        mov TCC,a

这些至少改为

        mov a,@TCCVAL        ;计数器初值
        add  TCC,a

使用特权

评论回复
5
shiaf| | 2011-12-10 14:43 | 只看该作者
这个问题一直困扰我
1.
        mov a,@TCCVAL        ;计数器初值
        add  TCC,a
2.
        mov a,@TCCVAL+1      ;计数器初值
        add  TCC,a

不知道那个是正确的?个人理解应该是用第 2 种。

使用特权

评论回复
6
q2403761026| | 2011-12-29 13:49 | 只看该作者
:victory:

使用特权

评论回复
7
q331513266| | 2012-3-28 15:35 | 只看该作者
你看进入中断地址后,执行了多久才给timer置初值,实际上定时时间=timer时间+进入中断重新置初值指令时间

使用特权

评论回复
8
q331513266| | 2012-3-28 15:36 | 只看该作者
所以在置初值时要考虑到 进入中断后,未置初值前的那一段指令时间。

使用特权

评论回复
9
McuPlayer| | 2012-3-28 16:23 | 只看该作者
上示波器或者逻辑分析仪,然后微调

使用特权

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

本版积分规则

270

主题

885

帖子

3

粉丝