本帖最后由 wang47987146 于 2014-7-29 13:20 编辑
yewuyi 发表于 2014-7-29 11:50
随机范围很窄,还是利用的白噪声。
如果有备电,可以以开机时间点的定时器数值为随机数种子。 ...
“随机范围很窄”,是指“用电容充电、放电的方法产生的随机数很小吗或者是随机数分布不均匀吗”?
我的方法是:定义一个CODE[10],给电容充电并计时,如果时间的个位数为偶数,则CODE[0]=1,
反之则为CODE[0]=0,由于电容有1uF,相对来说充电时间个位数的“奇、偶”还是相对随机的。然后把这些数合成一个大的随机数。
当然,如果用按键或者AD效果可能会好些。
顺便问一下前辈:PIC12F509每次上电定时的时间和上一次上电的时间都不一样,相差0.1ms,请问是要校准时钟吗?用C语言怎么表达?多谢! |