OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3182|回复: 1

关于ATmega16单片机在某一范围内生成随机不重复的数的问题

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-2-18
在线时间
8 小时
发表于 2015-10-21 17:23:33 | 显示全部楼层 |阅读模式
5金钱
各位好!
            关于ATmega16单片机生成随机不重复的数,比如[1,100]范围内,随机不重复地输出一遍;我参考C语言的函数,但是有个time.h的头文件,ATmega16单片机没有啊,请问一下怎么处理呢?

下面是我参考的代码,但是ATmega16没有time.h的头文件
[mw_shl_code=c,true]#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) { int a[100]={0}; int i,m; for(i=1;i<=99;++i) { printf("%4d",a ); } srand( (unsigned)time( NULL ) ); for(i=1;i<=99; i++) { while(a[m=rand()%100+1]); a[m] = i; } for(i=1;i<=99;++i) { printf("%4d",a ); } getch(); }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

这就是取时间做一个随机数的种子。 你可以读取ADC的值,作为随机数种子,输入给SRAND函数即可。
从事工业串口屏,串口屏让您的开发更加简单。联系方式18911306494、QQ微信同号1285144252莫炎森
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-21 17:23:34 | 显示全部楼层
这就是取时间做一个随机数的种子。
你可以读取ADC的值,作为随机数种子,输入给SRAND函数即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 02:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表