[問題] 8051中產生亂數

看板C_and_CPP (C/C++)作者 (￾N ￾ )時間14年前 (2012/06/17 17:21), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/1
我是用KEIL C寫 有試過用timer的TH與TL當種子 也是過當觸發時讓一個變數累加當種子 可是跑出來都會有特定的值會出現 請問該用甚麼當種子比較好呢??? 附上程式碼 if(PB0==0) { while(PB0==0) { i=(i+1)10; } srand(i); disp[3]=tab[rand()%10]; disp[2]=tab[rand()%10]; disp[1]=tab[rand()%10]; disp[0]=tab[rand()%10]; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.18.136

06/17 17:39, , 1F
看有沒有按鈕,如果有的話就將按下按鈕當作觸發
06/17 17:39, 1F

06/17 17:57, , 2F
我的PB0就是按鈕阿
06/17 17:57, 2F

06/17 18:00, , 3F
我對8051不熟, 不過TH跟TL的"精度"本身夠高嗎? 或許可能
06/17 18:00, 3F

06/17 18:01, , 4F
可能他們幾個LSB都是一樣的數字, 可能要先做右位移~
06/17 18:01, 4F

06/21 20:56, , 5F
乾脆內部弄個 LFSR記 STATE,讓他跑一陣子,就可當 DRNG
06/21 20:56, 5F
文章代碼(AID): #1FtQ6BTh (C_and_CPP)
文章代碼(AID): #1FtQ6BTh (C_and_CPP)