呵呵
看来我对你所说的开漏理解是相同的。在前面回复中已经明确说明,如果解决的方法有多种,不是说非要用某一种才可以,如果单片机支持你说的功能选择,一样可以解决问题。书中内容的目的是提醒大家需要注意有短路的可能,应该在程序中加以避免,实际上有的单片机的IO不支持输入输出选择,如果是这样的单片机那书中的内容就完全是错误的,对于这类细节,是需要读者自己去理解的。
这一点再多说两句,对于单片机内部的上下拉电阻,许多时候芯片资料对介绍并不清楚,这个电阻有多大,就是介绍也只是一个比较笼统的参考值,对于某些特殊电路,在外面另外加上下拉电阻的做**更稳妥,这样当出现多个电阻并联的情况时设计人员可以更精确的预估电阻值对电压的影响。我用一个极限例子来进行说明,有10条IO口都设为输入加内部下拉,这10条IO会同时读某一个信号量,但这个信号的电流驱动能力并不高,通常单片机内部下拉电阻为几十K,假设为47K,这样10条IO并联等效电阻就只有4.7K,这个电阻有可能把信号幅度拉低,比如是5V信号,4.7K电阻需要信号有1mA的驱动能力,如果其实际驱动能力值有0.5mA,会是什么样的后果?
做产品开发你所说的认为硬件把错误都解决了的想法不可取,合作是要相信别人,但绝对不能完全依赖别人,最好的做法是在条件允许的情况下,将自己的工作部分考虑更周详,更加稳定可靠。
还是你举个例子来说明你这种想法的问题所在,现在需要你写一个供别的同事实用的函数。
int data_copy(char *src,char *dec,int len)
按你的说法,只要在函数内部完成数据复制功能就可以。如果只是站在完成任务的角度,你这么做就已经可以,但绝对不能说你这样完成是高质量。
实际上如果有可能,应该在函数内部对参数做出一定保护,象int len,正常情况使用的同事会给出正确的值,但某些意外因素导致这个值被错误的设置或修改为小于0的值,你想想没有保护是什么样的后果?再比如目的地址,被意外指向系统区域,也是不允许的。
|