打印

一个基本的问题,nop到底用多少时间!

[复制链接]
2850|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chengli|  楼主 | 2008-12-10 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ps, AC, hz, ic, IO
我看<<Psoc原理与应用设计>>,p74,nop指令周期是4,这个周期是指机器时钟周期还是什么/ 

我的程序生成后没有修改,那么,是24MHz,也就是t=1/24MHz=0.0416us,那么1个nop就是4*t=0.166us ,对吧? 

可是问题是,我刚刚测了一下,用示波器量着不是这样

方法:

首先,
    写一个IO口高,下来低的程序,go,用示波器量,高是5us,低是约10us,(因为低之后有个jmp);
然后在高之后加nop测试高多了多少us

测试结果:

20个 nop    25us
30个 nop    40us
50个 nop    55us
那么,平均下来

1个  nop      1.33us

和计算(0.166us)严重不符合,差距有10倍,那么,首先不是IC的问题,如果误差这么大,这个IC就不会量产,其次,会是什么问题那?

另外,,在ps2d_1.asm(psoc designer生成的)中,,系统生成了一个

;-----------------------------------------------
; Macro definitions
;-----------------------------------------------
;-----------------------------------------------
; Precise Delay
;-----------------------------------------------
    MACRO DELAY

应该是很准确的,可是在ps2d_1.asm中有
DELAY    10, 12                         ; Wait 10 uSec

经过测试,竟然是100us!!!!正好是10倍,和刚才测量一样,

请问,到底是怎么回事?
沙发
PSoC_Rock| | 2008-12-10 17:23 | 只看该作者

请问CPU_Clock是多少?

使用特权

评论回复
板凳
chengli|  楼主 | 2008-12-11 19:26 | 只看该作者

序生成后没有修改,那么,是24MHz

使用特权

评论回复
地板
BENCSJ| | 2008-12-11 20:34 | 只看该作者

时钟

你检查哈,你的CPU_CLOCK是不是系统时钟的8分频,即3M的,系统时钟是24M,

使用特权

评论回复
5
PSoC_Rock| | 2008-12-17 17:23 | 只看该作者

CPU_Clock和sysclk 是不同的.

指令是按CPU_Clock来执行的一个nop是使用4个CPU_Clock周期,如果是3M CPU_Clock 那就是:
4/3M=1.33uS
和你等到的值是一样的!

使用特权

评论回复
6
fffzxm| | 2009-2-27 16:36 | 只看该作者

例子


.SECTION
;-----------------------------------------------------------------------------
;  FUNCTION NAME: tickDelay
;
;  DESCRIPTION: Delay n us @ 24MHz CPU clock
;     
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:
;     none.
;
;  RETURNS:
;     none.
;
;  SIDE EFFECTS:
;     A and X 
;
;        8(mov A & mov X),13(lcall),8(ret) about 1.2uS
 tickDelay:
_tickDelay:

    sub  A,4        ;4    2
    swap A,X        ;5    1
                    ;----9    
_L001:
    sbb  A,0        ;4    2
    jc   _END        ;5    2
                    ;----9    
    dec  X            ;4    1
    nop                ;4    1
    ljmp  _L001        ;7    3
_END:
    ret                ;8    1
.ENDSECTION

使用特权

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

本版积分规则

35

主题

66

帖子

1

粉丝