久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1217|回復: 1
收起左側(cè)

為什么我的隨機數(shù)生成程序運行幾次以后就不正常了?

[復制鏈接]
ID:1006994 發(fā)表于 2022-12-28 13:46 | 顯示全部樓層 |閱讀模式
RTRT,我對著按鍵狠搓個一百次左右后就會保持在一個數(shù)字不變,但是過一會又會恢復正常功能……“左右”是因為每次出現(xiàn)這種情況要按的次數(shù)都不一定……不過基本上是在100次以上的樣子。
我用的隨機數(shù)生成方法是srand()+rand()函數(shù),在main()里用遞增生成一個種子。不知道究竟哪里出問題了……
我用的開發(fā)板是普中-3的開發(fā)板。單片機的型號是STC89C52RC
附代碼:
  1. #include <REGX52.H>
  2. #include <stdlib.h>

  3. #define BUT1 P3_1
  4. #define MAX 255
  5. #define MIN 1

  6. unsigned char key_old = 1;
  7. unsigned char key_flag = 0;
  8. unsigned char key_now = 1;
  9. unsigned char keyup = 1;

  10. unsigned char down_count = 0;
  11. unsigned char up_count = 0;

  12. void configTimer0();
  13. unsigned int random(unsigned int xxx);

  14. void main()
  15. {
  16.         unsigned int seed = 0;
  17.         unsigned char LED = 0xFF;
  18.        
  19.         configTimer0();
  20.        
  21.         while (1)
  22.         {
  23.                 if (seed < 65530)
  24.                 {
  25.                         seed+=1;
  26.                 }
  27.                 else
  28.                 {
  29.                         seed=0;
  30.                 }
  31.                 if (down_count >= 2)
  32.                 {
  33.                         LED=random(seed);
  34.                         seed = 0;
  35.                        
  36.                         P2=LED;
  37.                         down_count = 0;
  38.                         keyup = 0;
  39.                 }
  40.                 if (up_count >= 2)
  41.                 {
  42.                         up_count = 0;
  43.                         keyup = 1;
  44.                 }
  45.         }
  46. }

  47. void configTimer0()
  48. {
  49.     TMOD=0x01; //0000 0001
  50.     TH0 = (65536 - 1000) / 256; //delay 1ms
  51.     TL0 = (65536 - 1000) % 256;
  52.     TR0 = 1;
  53.     ET0 = 1;
  54.     EA = 1;
  55. }

  56. unsigned int random(unsigned int xxx)
  57. {
  58.         unsigned int value;
  59.   srand(xxx);
  60.   value = rand() % (MAX + 1 - MIN)+ MIN;               //get a random num (MIN-MAX)
  61.   return value;
  62. }


  63. void timer0() interrupt 1
  64. {
  65.         static int count = 0;
  66.         if (count >= 10)
  67.         {
  68.                 // detect key
  69.                 key_now = BUT1;
  70.                 key_flag = (key_now ^ key_old) ^ key_flag;
  71.                 key_old = key_now;
  72.                 if(key_flag && keyup)
  73.                 {
  74.                         down_count += 1;
  75.                 }
  76.                 else if (!keyup && !key_flag)
  77.                 {
  78.                         up_count += 1;
  79.                 }
  80.         }
  81.        
  82.         TH0 = (65536 - 1000) / 256;
  83.   TL0 = (65536 - 1000) % 256;
  84.         count+=1;
  85. }
復制代碼



回復

使用道具 舉報

ID:883242 發(fā)表于 2023-1-3 16:05 | 顯示全部樓層
開一個定時器,隨機種子用定時器的值。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久 | 亚洲欧美中文日韩在线v日本 | a黄在线观看 | 成人免费视频网站在线观看 | 综合二区| 成人二区| 精品不卡 | 91久久精品一区二区二区 | 亚洲最大看片网站 | 精品一区二区三区四区视频 | 麻豆国产一区二区三区四区 | 97精品超碰一区二区三区 | 中文字幕av网 | 国产精品久久视频 | 免费观看a级毛片在线播放 黄网站免费入口 | 久久久久国产精品 | 日韩精品一区二区三区视频播放 | www.激情.com | 亚洲精品福利视频 | 日本精品视频一区二区 | 亚洲男人天堂av | 91精品国产综合久久福利软件 | 亚洲精品视频在线观看免费 | 久久国产欧美一区二区三区精品 | 密室大逃脱第六季大神版在线观看 | 国产福利免费视频 | 国产在线一区二区 | 久久久91精品国产一区二区三区 | 亚洲精品欧美一区二区三区 | 欧美在线网站 | 中文精品一区二区 | 国产精品久久久乱弄 | 亚洲人人 | 久久综合久色欧美综合狠狠 | 国产欧美精品在线 | 国产成人精品免费视频大全最热 | 国产精品视频一区二区三区 | 日韩一区二区三区在线观看 | 亚洲精品一 | 色.com| 91精品福利 |