之前是在liunx上C语言取随机数,使用时间做种子。
但是在简单的单片机上没有时钟,种子固定为65535。
然后取值范围为60到90之间。主要代码如下:
#includeint r1; srand(65535); /* 取随机数取 60到90之间 最大返回65536,除以90-60,小数进一2185. 然后再加上60。精度不高。 */ r1=((rand()/(65535/(90-60))) + 60);
代码方便看就好,程序中“(65535/(90-60))”即使每次调用,也不会每次处理都去运算。
按照编译原理,强大的C编译器会自动优化此部分。
发表评论