当前位置: 首页 > news >正文

个人网站注册做阿里巴巴网站找谁

个人网站注册,做阿里巴巴网站找谁,广州住房与建设网站,图片加文字rand()和srand()函数原型#xff1a; int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。 void srand(unsigned int seed)用来给rand() 设置随机数发生器#xff0c;随机数发生器输出不同的数值#xff0c;rand() 就会生成不同的随机数 1)、在“D:\Keil_v5\AR…rand()和srand()函数原型 int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。 void srand(unsigned int seed)用来给rand() 设置随机数发生器随机数发生器输出不同的数值rand() 就会生成不同的随机数 1)、在“D:\Keil_v5\ARM\ARMCC\include\stdlib.h”中有下面的定义 #ifdef __USE_ANSI_EXAMPLE_RAND #define srand _ANSI_srand #define rand _ANSI_rand #define RAND_MAX 0x7fff #else #define RAND_MAX 0x7fffffff  /*MDK-ARM默认使用RAND_MAX为0x7fffffff*/ #endif MDK-ARM默认使用RAND_MAX为0x7fffffff。 2)、在“D:\Keil_v5\ARM\ARMCC\include\time.h”中有下面的定义 extern _ARMABI time_t time(time_t * /*timer*/); 但是time没有具体的函数因此“srand((unsigned int)time(NULL))”就不能用了。 srand()函数用来生成“随机数种子”。当我们使用相同的种子时将生成相同的随机数序列。为了能通让rand()函数生成不同的随机数可以使用“TIM1的计数器值”作为作为种子值。因为“TIM1的计数器值”是不断变化的这样每次运行rand()函数就可以生成不同的随机数序列。 3)、测试rand()和srand()函数 void TIM1_Interrupt_Initializtion(u16 arr,u16 psc);//函数声明 //定时器1中断初始化 //APB2时钟为72MHz //arr自动重装值。 //psc时钟预分频数 //TIM_CKD_DIV1定时器时钟 输入频率 //TIM_CKD_DIV2定时器时钟 输入频率/2 //TIM_CKD_DIV4定时器时钟 输入频率/4 //TIM1溢出时间: arr*psc/72000000/TIM_CKD_DIVx //TIM1_Interrupt_Initializtion(1000,72); //当arr1000,psc72时,则为1ms,误差为1us; void TIM1_Interrupt_Initializtion(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //使能定时器TIM1的APB2外设时钟 //定时器TIM1初始化 TIM_TimeBaseStructure.TIM_Period arr-1; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler psc-1; //设置用来作为TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV1; //设置时钟分割:TDTS Tck_tim //计算公式:arr*psc/72000000/1,当arr1000,psc72时,则为1ms,误差为1us; TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; //TIM向上计数模式 TIM_TimeBaseInit(TIM1, TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位 TIM_SetCounter(TIM1,0);                      //设置TIM1的计数器值为0; TIM_ClearFlag(TIM1, TIM_FLAG_Update);        //清除TIM1溢出的待处理标志位 TIM_ClearITPendingBit(TIM1, TIM_IT_Update ); //清除TIM1中断的待处理位 // TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE ); //允许TIM1溢出产生中断 /*中断优先级NVIC设置 NVIC_PriorityGroup_4设置NVIC中断分组4:表示抢占优先级为4位,取值为0~15,没有响应优先级,取值为0 NVIC_PriorityGroup_3设置NVIC中断分组3:表示抢占优先级为3位,取值为0~7,响应优先级只有1位,取值为0~1 NVIC_PriorityGroup_2设置NVIC中断分组3:表示抢占优先级为2位,取值为0~3,响应优先级只有2位,取值为0~3 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4 NVIC_InitStructure.NVIC_IRQChannel TIM1_UP_IRQn;  //TIM1中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 11;  //设置抢占优先级为11 NVIC_InitStructure.NVIC_IRQChannelSubPriority 0;  //设置响应优先级为0 NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;     //IRQ通道被使能 NVIC_Init(NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化NVIC嵌套向量中断控制寄存器 */ TIM_Cmd(TIM1, ENABLE);//使能TIM1外设 } #include stdlib.h //rand()和srand()需要包含stdlib.h头文件 void Test_rand_And_srand(void) { unsigned int rand_Value;//声明无符号32位变量rand_Value unsigned int ms;//声明无符号32位变量ms rand_Valuerand(); //返回一个范围在0到RAND_MAX之间的伪随机数 msrand_Value%10001;//ms为1到1000之间的数 printf(ms%u\r\n,ms); } int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4 USART1_Serial_Interface_Enable(115200); printf(\r\nCPU reset\r\n); TIM1_Interrupt_Initializtion(1000,72); //当arr1000,psc72时,则为1ms,误差为1us; srand( TIM_GetCounter(TIM1) );//使用“TIM1的计数器值”作为作为种子值 while(1) { Test_rand_And_srand(); } } 仿真结果 3)、在MDK-ARM中不用srand()设置随机数发生器也可以使用rand()得到不同的随机数。 #include stm32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include stdio.h //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf() #include USART1.h //注意USART1.h要放在 stdio.h 包含文件之后如果这个位置颠倒了业不能打印浮点数。#include stdlib.h //rand()需要包含stdlib.h头文件void Test_Rand(void) {unsigned int rand_Value;//声明无符号32位变量rand_Valueunsigned int ms;//声明无符号32位变量msrand_Valuerand(); //返回一个范围在0到RAND_MAX之间的伪随机数printf(rand_Value%u\r\n,rand_Value);msrand_Value%10001;//ms为1到1000之间的数printf(ms%u\r\n,ms); }int main(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4USART1_Serial_Interface_Enable(115200);printf(\r\nCPU reset\r\n);while(1){Test_Rand();} } 仿真结果如下 4)、如果在调用rand()前每次都使用srand()设置一个常数作为种子就会得到相同的随机数。 #include stm32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include stdio.h //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf() #include USART1.h //注意USART1.h要放在 stdio.h 包含文件之后如果这个位置颠倒了业不能打印浮点数。#include stdlib.h //rand()需要包含stdlib.h头文件void Test_Rand(void) {unsigned int rand_Value;//声明无符号32位变量rand_Valueunsigned int ms;//声明无符号32位变量mssrand(1);rand_Valuerand(); //返回一个范围在0到RAND_MAX之间的伪随机数printf(rand_Value%u\r\n,rand_Value);msrand_Value%10001;//ms为1到1000之间的数printf(ms%u\r\n,ms); }int main(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4USART1_Serial_Interface_Enable(115200);printf(\r\nCPU reset\r\n);while(1){Test_Rand();} } 仿真结果 5)、 如果在调用rand()前只用一次srand()设置一个常数作为种子可以得到不同的随机数。 #include stm32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include stdio.h //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf() #include USART1.h //注意USART1.h要放在 stdio.h 包含文件之后如果这个位置颠倒了业不能打印浮点数。#include stdlib.h //rand()需要包含stdlib.h头文件void Test_Rand(void) {unsigned int rand_Value;//声明无符号32位变量rand_Valueunsigned int ms;//声明无符号32位变量msrand_Valuerand(); //返回一个范围在0到RAND_MAX之间的伪随机数printf(rand_Value%u\r\n,rand_Value);msrand_Value%10001;//ms为1到1000之间的数printf(ms%u\r\n,ms); }int main(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4USART1_Serial_Interface_Enable(115200);printf(\r\nCPU reset\r\n);srand(1);while(1){Test_Rand();} } 仿真结果 为什么在keil中,会出现这种结果 在Keil环境中如果不使用srand()函数直接调用rand()函数也可以生成随机数。调用rand()不但可以生成一个新的随机数而且也会更新“种子值”。
http://www.pierceye.com/news/176704/

相关文章:

  • 做律师网站的公司天津公司网站制作
  • 上海建设摩托车官方网站招聘网站数建设
  • 自己制作一个网站需要什么软件安吉网站制作
  • 如何设计服装网站首页网站建设比较好的公司
  • 微信网站的链接标志图片如何做公众号如何创建
  • 建站公司建的网站能改动吗怎样设置默认网站
  • 高并发电商网站开发辽宁省朝阳市做网站
  • 公司做网站有用吗合肥企业快速建站
  • 因脉网站建设公司怎么呀韩国网站开发建设技术特点
  • 网站备案 个人 单位安徽网站建设推广
  • 黔江网站制作网站招标建设
  • 网站注册公司目前最好的引流方法
  • 小米wifi设置网址入口网站通信工程建设网站
  • 深圳专业网站建在线做插画的网站
  • 站长之家网站查询怎么样创建自己的小程序
  • 站酷海报设计图片网站备份怎么做
  • 做网站挣钱么云市场 wordpress
  • 网站域名管理规范seo专员是什么
  • 网站制作+资讯网站特色栏目重要性
  • 网站qq 微信分享怎么做的随州市住房和城乡建设部网站
  • 资源网站建设多少钱手机网站页面文字做多大
  • 烟台专业做网站宜昌教育云网站建设
  • 慕课联盟网站开发实战wordpress怎样修改域名
  • 什么电脑做网站前段用旅游网站建设的利益
  • 做 暧视频在线观看网站花都网站建设设计
  • 黄石企业网站设计服务外包有哪些
  • 团队合作网站网站制作的报价大约是多少
  • 网站在线留言系统能挣钱的平台 正规的
  • 冀州网站制作泉州握旗公司网站建设
  • 免费php企业网站苏州网站建设多少钱