延时函数 delay 定义 的问题

为什么我把char换成int就可以正确运行电机了呢?如果用char电机动也不动voiddelay_2us(unsignedintn)//这里不能定义为char否则程序会无... 为什么我把char换成int就可以正确运行电机了呢?
如果用char电机动也不动

void delay_2us(unsigned int n) //这里不能定义为char 否则程序会无效化

{ while(--n);

}
void delay_2us(unsigned char n)
其实是从别人的程序里抄来的,他们难道 没有测试过就把代码发给别人了?
展开
 我来答
libinhao1111
2011-02-21 · TA获得超过1014个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:557万
展开全部
我知道你的问题所在了,其实用char并不是不可以,关键是你在调用delay_2us的时候传递的参数的值要正确。 char的大小为1个字节,所以有效范围为-128 到 127,如果你传递的参数大于127,则毫无疑问char的值会出错(貌似是变成了-1),而如果改用int则不会出现这个问题了unsigned int的范围为0 ~ 2^32 -1 ,这就不可能出错了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式