[C语言] 延时函数delay(int n)和delay(char n)为啥会出现不同的结果?

[复制链接]
2961|5
 楼主| wjt_tyy 发表于 2014-4-19 20:21 | 显示全部楼层 |阅读模式
今天我在调试DS18B20,先写了个delay(char n)延时函数,温度读取一切正常。接着我为了能传递更大的延时,而把函数声明改成delay(int n),其他都没变。结果读出来的温度始终是—409.9367 。一直不变。于是我又把函数改回delay(char n),温度又正常了。
请问各位有遇到这样的问题吗?谁能帮我解释下。
ayb_ice 发表于 2014-4-19 21:13 来自手机 | 显示全部楼层
对一个变量int操作和char操作的指令时间不同,所以延时不一样,导致总线错误
一清如水 发表于 2014-4-19 22:39 | 显示全部楼层
一楼是有道理的,但我不完全同意,你可以分别用int 和char 想同延时的条件下,进入到KIEL 的调试模式,看一下,执行改天延时命令所用的时间是否一致,若一致,说明你的程序存在问题,若不一致,可以适当的调整延时时间来达到时序的要求。程序是调出来了,多用调试,会是你解决很多问题。
huangxz 发表于 2014-4-19 23:31 | 显示全部楼层
对于8位机来说,int 和char相差还是蛮大的
ayb_ice 发表于 2014-4-20 08:02 | 显示全部楼层
一清如水 发表于 2014-4-19 22:39
一楼是有道理的,但我不完全同意,你可以分别用int 和char 想同延时的条件下,进入到KIEL 的调试模式,看一 ...

int i;
char x;

i--;
x--;

你用汇编写自己试试,
shiningtome 发表于 2014-5-10 08:22 | 显示全部楼层
四层板:500元/款 数量10PCS;FR-4,板厚1.0~1.6MM,长宽在10*10cm以内,一般交期5-6天
以上报价工艺为:FR-4,绿油白字,有铅喷锡工艺,数量为10片内。
镀金工艺加收50元,沉金工艺加收100元。无铅喷锡工艺(环保工艺)加收20元。
深圳顺易捷科技有限公司销售联系人:韩先生
手机13480101190 /13510965133  
QQ800055586
电话:0755-84086168,传真0755-84069526
E-mail :syjpcb@163.com

八层板:1800元/款 数量10PCS,FR-4,板厚1.6MM,长宽在10*10CM以内,一般交期7~8天
以上报价工艺为:FR-4,绿油白字,有铅喷锡工艺,数量为10片内。
镀金工艺加收50元,沉金工艺加收100元。无铅喷锡工艺(环保工艺)加收20元。
深圳顺易捷科技有限公司销售联系人:韩先生
手机13480101190 /13510965133  
QQ800055586
电话:0755-84086168,传真0755-84069526
E-mail :syjpcb@163.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

44

帖子

0

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