作者godmice (godmice)
看板ASM
標題[問題] Arduino randomSeed 問題
時間Tue Aug 14 15:14:50 2018
各位大大好,
小女子剛開始接觸arduino,
看著書自學,遇到了一些問題。
const unsigned int LED_BIT0=12;
const unsigned int LED_BIT1=11;
const unsigned int LED_BIT2=10;
const unsigned int BAUD_RATE=9600;
void setup() {
pinMode(LED_BIT0,OUTPUT);
pinMode(LED_BIT1,OUTPUT);
pinMode(LED_BIT2,OUTPUT);
Serial.begin(BAUD_RATE);
randomSeed(analogRead(A0)); //AO randomseed
long result=random(1,7); //1~6
Serial.println(result);
output_result(result);
}
void loop() {
}
void output_result(const long result){
digitalWrite(LED_BIT0,result & B001);
digitalWrite(LED_BIT1,result & B010);
digitalWrite(LED_BIT2,result & B100);
這是按照書上打的,運行上沒問題
但當我把long result=random(1,7);
改成long result=random(1,8);時
就只會出現1這個數字
改成long result=random(2,9);
則只會出現2
想請問強者們,為甚麼會這樣QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.65.214
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1534230893.A.201.html
1F:推 god145145: 運氣好吧 放loop裡面跑應該就正常08/14 23:49
想請問運氣好是什麼意思QQ
放loop是可以
但其他間距都行
就只有差7的間距不行
想知道是什麼狀況 或是有什麼限制嗎?
※ 編輯: godmice (111.71.13.37), 08/15/2018 00:09:17
2F:推 johnpage: A0 給不同值,亂數原理問題08/15 05:24
為什麼(1,6)(1,3)(1,10)都是亂數
就只有(1,8)會固定是1呢?
※ 編輯: godmice (111.71.13.37), 08/15/2018 09:01:26
3F:→ suninrain: random可以看到原始碼嗎?從這邊去找應該會比較有頭緒~ 08/15 13:27
4F:推 suninrain: 拍謝~恍神有點亂回,可以參考樓樓上說的改seed~ 08/15 13:36