[国产单片机] EMC单片机精确定时问题:

[复制链接]
 楼主| 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
shiaf 发表于 2011-12-10 14:43 | 显示全部楼层
这个问题一直困扰我
1.
        mov a,@TCCVAL        ;计数器初值
        add  TCC,a
2.
        mov a,@TCCVAL+1      ;计数器初值
        add  TCC,a

不知道那个是正确的?个人理解应该是用第 2 种。
q2403761026 发表于 2011-12-29 13:49 | 显示全部楼层
:victory:
q331513266 发表于 2012-3-28 15:35 | 显示全部楼层
你看进入中断地址后,执行了多久才给timer置初值,实际上定时时间=timer时间+进入中断重新置初值指令时间
q331513266 发表于 2012-3-28 15:36 | 显示全部楼层
所以在置初值时要考虑到 进入中断后,未置初值前的那一段指令时间。
McuPlayer 发表于 2012-3-28 16:23 | 显示全部楼层
上示波器或者逻辑分析仪,然后微调
您需要登录后才可以回帖 登录 | 注册

本版积分规则

270

主题

885

帖子

3

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