首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

延时当中的计数值该如何计算?

延时当中的计数值该如何计算?

MC9S12FX512MLM 1M64J的芯片,晶振由一个4M和一个40M的构成
想延时10微秒,延时程序中的time10us该怎么计算?
void Delay(uint32 D)   
{
uint32 i;
for(;D>0;D--)
   for(i=time10us;i>0;i--);
}


锁相环配置如下:
     PLLCTL_PLLON = 0;       /* Disable the PLL */
    SYNR_SYNDIV = 0x04;        /* Set PLL synthesizer register to 4 */
    REFDV_REFDIV = 0x00;     /* Set PLL divider register to 0 */
   
    /* Fvco = 2*OSCCLK*(SYNR+1)/(REFDV+1) = 8MHz* 5/1 = 40MHz   */
    /*                                    -> VCOFRQ = 00b        */        
    SYNR_VCOFRQ1 = 0;
    SYNR_VCOFRQ0 = 0;
        
    /* Fref = OSCCLK/(REFDV+1) = 4MHz/1 = 4MHz -> REFRQ= 01b     */   
    REFDV_REFFRQ1 = 0;
    REFDV_REFFRQ0 = 1;
   
    PLLCTL_PLLON = 1;   /* PLL enabled */
这种延时只可以做粗略的计算,还不如直接用示波器测试来的快
个人BLOG:http://blog.eccn.com/u/107300/index.htm
要不拿定时器,算个计数值,能比较准的。
还是用示波器来观测计较快
用汇编写,然后查指令手册。看每个指令执行的机器周期,然后就可以算出来总的延时了。
返回列表