- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 19

Thema: Problem mit Zufalls Tabelle (Atmega32)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Kann man statt einer Tabelle nicht einfach die RND Funktion verwenden?

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von Klebwax Beitrag anzeigen
    Kann man statt einer Tabelle nicht einfach die RND Funktion verwenden?
    Soweit waren wir oben schon! RND erzeugt keine echten Zufallszahlen, der Threadersteller will aber welche. Mit RND würden nach dem Start immer wieder diesselbe Musterfolge auftreten.
    Grüße
    Thomas

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    RND erzeugt keine echten Zufallszahlen
    Ich mag ja nicht gern klugscheissen, aber "echte" Zufallszahlen gibt es nicht!

    Gruß

    mic
    Geändert von radbruch (31.01.2013 um 14:41 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Thomas E. Beitrag anzeigen
    Soweit waren wir oben schon! RND erzeugt keine echten Zufallszahlen, der Threadersteller will aber welche. Mit RND würden nach dem Start immer wieder diesselbe Musterfolge auftreten.
    Das ist schon klar, es ging mir eher um die Frage:
    Und wie soll ich das Zufallsprogramm realisieren, ohne Datentabellen?
    Eine (pseudo)Zufallsfolge liefert typischerweise eine Funktion, ohne Tabelle. Nur den Startwert muß man sich durch einen von extern geholten Wert bestimmen. In C kann man den random seed einstellen, ich weiß nicht ob das in Basic auch so geht. Die wirkliche Frage ist eher, wo bekomme ich bei einer gegebenen Hardware einen Startwert her. Wenn es eine Starttaste gibt, kann man die Zeit vom Einschalten bis zum Drücken der Taste nehmen. Ob ein offener ADC Eingang etwas passendes liefert, muß man ausprobieren. Dann mit diesem Wert den random seed einstellen, oder wenn das nicht geht, sooft wie diese Zahl vorgibt RND aufrufen und das Ergebniss verwerfen. Ab dann ist das Muster sicher nicht mehr zu erkennen. Besser als eine Tabelle mit 16 Einträgen ist das allemal.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Ich wollte gerade aus Interesse heraus eine Funktion schreiben, die einen Zufallswert liefert und bin dabei auf etwas interessantes in der Bascom-Hilfe gestoßen:

    The RND() function returns an Integer/Word and needs an internal storage of 2 bytes. (___RSEED). Each new call to Rnd() will give a new positive random number.

    Notice that it is a software based generated number. And each time you will restart your program the same sequence will be created.

    You can use a different SEED value by dimensioning and assigning ___RSEED yourself:

    Dim ___rseed as word : ___rseed = 10234

    Dim I as word : I = rnd(10)


    When your application uses a timer you can assign ___RSEED with the timer value. This will give a better random number.



    Also kann man den Seed von der RND-Funktion direkt mit einem Timerwert laden, was für die Anwendung des Threadstarters einen ausreichenden Zufall darstellt.
    Grüße
    Thomas

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Also kann man den Seed von der RND-Funktion direkt mit einem Timerwert laden
    Bei einem Programm ohne Verzweigungen (z.B. direkt nach der Initialisierung) ist der Timerwert immer gleich, weil sich auch der Timer am Kontrollertakt orientiert!
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von radbruch Beitrag anzeigen
    Bei einem Programm ohne Verzweigungen (z.B. direkt nach der Initialisierung) ist der Timerwert immer gleich, weil sich auch der Timer am Kontrollertakt orientiert!
    Man darf eben nicht immer zur gleichen Zeit den Wert aus dem Timmer laden.
    Grüße
    Thomas

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2013
    Beiträge
    9
    Nabend,

    ich werde morgen oder übermorgen mal ein wenig mit euren Ideen herum experimentieren.
    Ich könnte den Timer ja evtl. nach dem 50 Bild laden lassen, oder auch noch später (habe 7000 Bilder ), was wäre Sinnvoll?
    Den Timer früher oder später Initialisieren?

    Mit freundlichem Gruß
    Lars

Ähnliche Themen

  1. [ERLEDIGT] Suche Schaltung für Zufalls Ein/Aus Intervalle
    Von MerlinTheWizzard im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 07.04.2011, 14:52
  2. Pseudo-Zufalls-Impulse-Generator
    Von Maurice M. im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 12.01.2010, 09:58
  3. Problem mit optischer Maus an STK500 mit ATMega32
    Von collatz im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 21.04.2008, 20:17
  4. Timer2 Problem mit ATmega32
    Von Maverick83 im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 05.06.2007, 19:50
  5. STACK Problem mit BasCom ATMega32
    Von Chris266 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 18.04.2005, 11:36

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test