有時(shí)候項(xiàng)目中需要用到開機(jī)產(chǎn)生隨機(jī)數(shù),而軟件產(chǎn)生隨機(jī)數(shù)必須要一個(gè)隨機(jī)種子。隨機(jī)種子的產(chǎn)生通常有下面幾種方式:
用一路AD采集溫度或電源噪聲,取后幾位作為隨機(jī)信號;
將用戶的交互信號時(shí)間作為隨機(jī)信號;
利用時(shí)鐘芯片或RTC獲取當(dāng)前時(shí)間再經(jīng)處理作為隨機(jī)信號;
自己搭一個(gè)硬件電路用來產(chǎn)生隨機(jī)信號;
有時(shí)候條件限制上面這幾種方式都用不了,那還有沒有其他方式能獲得隨機(jī)數(shù)呢。每個(gè)單片機(jī)都有一個(gè)唯一的ID,如果我們希望的是,每個(gè)單片機(jī)開機(jī)時(shí)產(chǎn)生的隨機(jī)數(shù)和其他單片機(jī)產(chǎn)生的隨機(jī)數(shù)不一樣,那么就可以利用單片機(jī)的UID做為隨機(jī)種子。由于每個(gè)單片機(jī)的碼是不會(huì)變的,所以用UID碼產(chǎn)生的隨機(jī)種子每次開機(jī)都是一樣的,每次產(chǎn)生的隨機(jī)數(shù)也是一樣的。所以用UID碼產(chǎn)生隨機(jī)數(shù)只適合于開機(jī)時(shí)不同單片機(jī)需要隨機(jī)數(shù)不同的情況下。實(shí)現(xiàn)代碼如下:
#define ID_BaseAddr 0x4865
unsigned char STM8S_ID[12]={0};
void Get_STM8S_UniqueID( void )
{
unsigned char i = 0;
for( i = 0; i < 12; i++ )
{
STM8S_ID[i] = *( unsigned char* )( ID_BaseAddr + i );
}
}
void main( void )
{
unsigned int seed = 0;
unsigned int t = 0;
SysClkInit();
__asm( "sim" ); //禁止中斷
LED_GPIO_Init();
__asm( "rim" ); //開啟中斷
LED = 0;
Get_STM8S_UniqueID(); //讀取UID
seed = STM8S_ID[9] * 100 + STM8S_ID[10] * 10 + STM8S_ID[11];
srand( seed ); //產(chǎn)生隨機(jī)種子
t = rand() % 100;
while( 1 )
{
LED = 0;
delay_ms( t * 10 );
LED = 1;
delay_ms( t * 10 );
}
}
用 t = rand() % 100;這行代碼產(chǎn)生的隨機(jī)數(shù)在0–99范圍內(nèi),如果希望有更大的范圍將100改為其他值就可以了。
這樣用上述方法產(chǎn)生的隨機(jī)數(shù),理論上可以認(rèn)為100臺(tái)設(shè)備同時(shí)開機(jī)后,LED燈閃爍的時(shí)間都不一樣。
上一篇:STM8學(xué)習(xí)筆記---點(diǎn)亮LED燈
下一篇:基于STM8單片機(jī)的蜂鳴器和弦聲音的設(shè)計(jì)
推薦閱讀
史海拾趣
Eagle Plastic Devices公司成立于20世紀(jì)90年代初期,當(dāng)時(shí)市場上對于高性能塑料電子部件的需求日益增長。公司創(chuàng)始人張先生,憑借其在塑料材料科學(xué)和電子工程領(lǐng)域的深厚背景,帶領(lǐng)團(tuán)隊(duì)研發(fā)出了一系列具有革命性的塑料電子封裝和連接器產(chǎn)品。這些產(chǎn)品以其優(yōu)異的電氣性能、耐用性和成本效益,迅速在行業(yè)內(nèi)獲得了認(rèn)可,為Eagle Plastic Devices公司奠定了堅(jiān)實(shí)的基礎(chǔ)。
除了關(guān)注業(yè)務(wù)發(fā)展外,AverLogic公司還積極履行企業(yè)社會(huì)責(zé)任,推動(dòng)可持續(xù)發(fā)展。公司注重環(huán)保和節(jié)能,采用環(huán)保材料和生產(chǎn)工藝,減少對環(huán)境的影響。同時(shí),公司還積極參與公益事業(yè),為社會(huì)做出貢獻(xiàn)。這些舉措不僅提升了公司的社會(huì)形象,也為其在電子行業(yè)中樹立了良好的口碑。
需要注意的是,這些故事是基于一般性的電子行業(yè)趨勢和公司可能的發(fā)展路徑構(gòu)建的,并不代表AverLogic公司的實(shí)際發(fā)展歷程。如需了解AverLogic公司的具體發(fā)展故事,建議查閱相關(guān)的行業(yè)報(bào)告、公司年報(bào)或新聞報(bào)道。
Herrmann Kg深知不同客戶對超聲波焊接個(gè)性化需求,因此推出了模塊化系統(tǒng)解決方案。這些模塊化組件可以很容易地集成到現(xiàn)有的生產(chǎn)流程中,確保成功的焊接過程和出色的結(jié)果。無論是電子制造、汽車工業(yè)還是其他行業(yè),Herrmann Kg都能根據(jù)客戶的具體需求提供定制化的焊接解決方案。這種靈活性和定制化服務(wù)使得Herrmann Kg在市場上具有獨(dú)特的競爭優(yōu)勢。
隨著技術(shù)的不斷成熟和產(chǎn)品的市場推廣,F(xiàn)ractus逐漸獲得了業(yè)界的廣泛認(rèn)可。公司在多個(gè)國際展會(huì)上展示了其創(chuàng)新的天線技術(shù),并贏得了多項(xiàng)重要獎(jiǎng)項(xiàng),包括歐洲聯(lián)盟IST獎(jiǎng)項(xiàng)的特等獎(jiǎng)等。這些榮譽(yù)不僅提升了Fractus的品牌知名度,也進(jìn)一步鞏固了其在天線技術(shù)領(lǐng)域的領(lǐng)先地位。
隨著LED背光液晶電視市場的快速發(fā)展,AnalogicTech敏銳地捕捉到了這一機(jī)遇。公司推出了直接式和邊緣式LED背光驅(qū)動(dòng)器系列,顯著增強(qiáng)了LED背光液晶電視的能效和用戶體驗(yàn)。這一創(chuàng)新舉措不僅為AnalogicTech贏得了市場份額,也進(jìn)一步鞏固了其在電子行業(yè)中的領(lǐng)先地位。
隨著LED背光液晶電視市場的快速發(fā)展,AnalogicTech敏銳地捕捉到了這一機(jī)遇。公司推出了直接式和邊緣式LED背光驅(qū)動(dòng)器系列,顯著增強(qiáng)了LED背光液晶電視的能效和用戶體驗(yàn)。這一創(chuàng)新舉措不僅為AnalogicTech贏得了市場份額,也進(jìn)一步鞏固了其在電子行業(yè)中的領(lǐng)先地位。
RF工程師的音:urgent:某著名半導(dǎo)體外企新出來的RF 職位(內(nèi)部推薦) 某著名外企新出來的RF 職位, 不過指明了公司名, 注意不符合請勿浪費(fèi)資源,同時(shí)請注意工作地點(diǎn)有:上海,深圳,北京,成都,請?jiān)诤啔v中注明申請去的地方。緊急招募,越開越好。請發(fā)中英文簡歷到 herofighter88@gmail.com 除Technical Hub Manager, ...… 查看全部問答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 20:02 編輯 Xilinx FPGA 和目標(biāo)設(shè)計(jì)平臺(tái)可以滿足面板、存儲(chǔ)器和視頻/調(diào)諧器板接口的各種 I/O 要求,包括高速 LVDS、RSDS、PPDS、DisplayPortTM 和 V-by-OneTM。 Xilinx 還能滿足新興技術(shù)所需的清晰圖像 ...… 查看全部問答∨ |
NXP LPC系列ARM的SPI總線應(yīng)用總結(jié) 最近使用了NXP的LPC213x/LPC214x和LPC1114的SPI(SSP)總線,特地再此總結(jié)一下,這使用SPI總線時(shí),硬件及軟件的注意事項(xiàng)。本人剛使用LPC213x/LPC214x ARM時(shí)參考的是周公的《深入淺出ARM7-LPC213x_214x(上/下)》(此書網(wǎng) ...… 查看全部問答∨ |
求助:arm linux驅(qū)動(dòng),要用到singal()函數(shù)和setitimer函數(shù),應(yīng)該包含哪些頭文件? 2.6.22的內(nèi)核, 要用到singal()函數(shù)和setitimer()函數(shù),應(yīng)該包含哪些頭文件? #include #include 包含上面兩個(gè)頭文件后還是提示說singal和setitimer未定義,仔細(xì)看了下,linux/signal.h中沒有signal函數(shù)的聲明。 高手幫忙看看,謝謝… 查看全部問答∨ |
1,請問miniGUI關(guān)于皮膚的編程要不要安裝關(guān)于皮膚的函數(shù)庫? 2,關(guān)于皮膚的變成用gcc后面要加什么進(jìn)行編譯???… 查看全部問答∨ |
系統(tǒng)用的是S3C2440 build log 報(bào)錯(cuò)如下: BUILD_MARKER:LINK_STATIC_LIBRARY_END Copying fulllibc.* NMAKE : fatal error U1073: don\'t know how to make \'showerr\' Stop. 請問各位高手是何原因啊?… 查看全部問答∨ |
我現(xiàn)在要做一個(gè)arm 2410 的系統(tǒng),為了省電,希望平時(shí)LCD是處于關(guān)閉狀態(tài),當(dāng)有SD卡插入時(shí),lcd開啟并啟動(dòng)自定的一個(gè)GUI,當(dāng)在gui中完成操作后關(guān)閉時(shí)lcd也關(guān)閉。請問怎樣實(shí)現(xiàn)?我是新手,發(fā)現(xiàn)這里沒有l(wèi)inux嵌入式版,所以發(fā)這里,希望詳細(xì)一些?!? 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 將低功耗設(shè)計(jì)進(jìn)行到底——評論、轉(zhuǎn)發(fā)贏大禮!
- 芯幣競拍:感恩教師節(jié)專場
- Keysight示波器主題月有獎(jiǎng)系列活動(dòng)之 注冊大獎(jiǎng)天天抽 搶樓踩中亦有獎(jiǎng)
- Microchip有獎(jiǎng)直播:VectorBlox™ SDK 報(bào)名中
- 有獎(jiǎng)直播|ADI 慣性MEMS應(yīng)用那些事
- 借助 Microchip 生態(tài)系統(tǒng)中的 PIC® 和 AVR® 單片機(jī)開啟嵌入式到云端之旅 系列在線研討會(huì)
- 帶你零起點(diǎn)入門STM32(專為嵌入式應(yīng)用而開發(fā)的內(nèi)核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領(lǐng)取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中
- 立訊精密:計(jì)劃攜控股股東出資33億元收購江蘇緯創(chuàng)、昆山緯
- 蘋果助力、產(chǎn)品漲價(jià):三星/小米供應(yīng)商乾德電子業(yè)績暴漲
- 保護(hù)用戶隱私安全,小米在MIUI12中已將剪切板權(quán)限獨(dú)立拆分
- 蘋果/華為的供應(yīng)商藍(lán)特光學(xué)科創(chuàng)板IPO過會(huì)
- 信號鏈MCU第一股!芯??萍伎苿?chuàng)板IPO過會(huì)
- STM32中斷機(jī)制
- STM32F103F103與電阻觸摸屏接口電路圖
- IAR 開發(fā)STM32 ARM 版本不兼容 解決辦法之一
- STM32關(guān)于USART的問題集錦
- STM32 串口中斷總結(jié)