打印

再谈picc延时函数设计

[复制链接]
3307|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tkalxy|  楼主 | 2007-11-1 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
tkalxy|  楼主 | 2007-11-1 14:03 | 只看该作者

内容

学习picc这么长时间了,但是一直对于软件延时很不理解。发现通过c语言设计的延时函数,经过编译后的汇编代码都不一样,很不明白!例如

参考本网站的picc设计技巧的**cypok的言论搜集,发现许多好像不正确。例如文中说

x=100;while(--x){;} 
汇编后: 
    movlw 100 
    bcf 3,5 
    bcf 3,6 
    movwf        _delay 
    l2    decfsz         _delay 
    goto l2 
    return 

但是我做了不是这样的,还有

最能精确控制指令时间的: 
void delay(char x,char y){ 
                  char z; 
             do{ 
                           z=y; 
                          do{;}while(--z); 
                   }while(--x); 

其指令时间为:7+(3*(Y-1)+7)*(X-1)如果再加上函数调用的call指令、页面设定、传递参数
花掉的7个指令。则是:14+(3*(Y-1)+7)*(X-1)。

我不知道有没有人用,经过实验了没有?对于高手怎么设计延时函数,难道只看stopwatch?对于简单的延时难道非要用硬件延时?请高手出来说句话阿!

使用特权

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

本版积分规则

36

主题

117

帖子

1

粉丝