打印
[C语言]

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

[复制链接]
2252|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相差还是蛮大的

使用特权

评论回复
5
ayb_ice| | 2014-4-20 08:02 | 只看该作者
一清如水 发表于 2014-4-19 22:39
一楼是有道理的,但我不完全同意,你可以分别用int 和char 想同延时的条件下,进入到KIEL 的调试模式,看一 ...

int i;
char x;

i--;
x--;

你用汇编写自己试试,

使用特权

评论回复
6
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

粉丝