Ich bin momentan an einer Schaltung mit einigen ATMegas dran und überlege mir, nich benötigte Pins auf Masse zu legen. Die Software wird einen Zufallsgenerator brauchen und ich habe gehört, dass sich der AD-Wandler dafür missbrauchen lässt. Welcher Pin beim Mega32 ist das? Hat der Pin AIN0/1 was damit zu tun? Wenn ich die auf Masse lege, wird das wohl nichts mit Zufallsgenerator, oder?
>Ich bin momentan an einer Schaltung mit einigen ATMegas dran und >überlege mir, nich benötigte Pins auf Masse zu legen. Mach mal, aber programmiere die dann bloß nicht durch Zufall auf Ausgang, und leg dann auf keinen Fall eine 1 drauf ;)
>Mach mal, aber programmiere die dann bloß nicht >durch Zufall auf Ausgang, und leg dann auf keinen Fall >eine 1 drauf ;) Ou ja, so ungefähr steht's auch im Datenblatt ... :D Ok, den internen Pull-up zu aktivieren ist eine bessere Alternative. Dann muss ich mir auch keine Gedanken über den Zufallsgenerator machen.
Such mal nach den Pin's die mit ADC anfangen... Und ja, man kann damit Zufällige Werte generieren (Wenn die Pin's NICHT auf Masse gezogen werden). Schöne Grüße, Alex
Maxim wrote: > Die Software wird > einen Zufallsgenerator brauchen und ich habe gehört, dass sich der > AD-Wandler dafür missbrauchen lässt. Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen. Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden. Peter
>Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen. >Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden. http://www.mikrocontroller.net/wikisoftware/index.php?title=Zufallszahlen§ion=5#Wie_gewinnt_man_echte_Zufallszahlen.3F So wie ich das verstehe, kann man den ADC doch als Zufallsgenerator verwenden, vorausgesetzt, das unterste Bit rauscht.
Maxim wrote: > So wie ich das verstehe, kann man den ADC doch als Zufallsgenerator > verwenden, vorausgesetzt, das unterste Bit rauscht. Also ich hab den ATtiny26 und den ATmega8 ausprobiert, die rauschen nicht, die stehen wie ne Eins. Man kann mit nem 10-Gang Poti stabil jeden Wert von 0...1023 einstellen. Ich hab auchmal versucht zusätzliche Bits mit Mittelung über 256 Werte zu erreichen, Pustekuchen. Und wenn die VCC durch Lastschwankungen zappelt, ist das bestimmt nicht zufällig, die Lasten schaltet ja der MC selber (PWM, Multipexanzeige usw.) Peter
naja da müsstest du schon ein bauteil, mit starkem weissen rauschen anhängen... wofür brauchst du den zufallsgenerator? Grundsätlich wärs doch sinnvoller den per software zu implementieren...
Mit PIC steht hier ein Link: http://www.mikrocontroller.net/articles/Zufallszahlen http://mywebpages.comcast.net/orb/ Open Random Bit Generator, ein 8-Pin-PIC mit ADC und 100k von einem Ausgang zum ADC-Eingang. Der Ausgang wird mit endlicher Wahrscheinlichkeit nach H oder L geschaltet, das Rauschen des letzten Bits im ADC liefert dann die unendliche Unwahrscheinlichkeit oder so ähnlich.
Ich brauche eine Zufallszahl um eine Sinusfunktion zu variieren, die wiederum die Helligkeit einer LED darstellt. Auf meiner 1/2 Euro-Platine sind insgesamt neun PWM Kanäle mit jeweils bis ca. 150mA Strom. Vielleicht würde das ausreichen, um den ADC-Wandler anzuregen.
Kann ich das Rauschen mit einer Z-Diode erzeugen? Werde sowieso bald bei Pollin bestellen und da gibt es einige zur Auswahl. Wie entsteht das Rauschen in einer z-Diode? Wie muss ich sie anschließen?
Kennt sich denn niemand damit aus? Reich es auch, wenn ich an die Z-Diode die Durchlassspannung anlege, sodass sie gerade so leitet? In welcehm Bereich in Volt liegt das Rauschen?
Hi Maxim! Habe hier in einer Anwendung mit ATMega32 kürzlich ebenfalls Zufallszahlen gebraucht. Bin dabei wie folgt vorgegangen: Ich lese einen offenen ADC-Pin (floatend, nicht beschaltet, v.a. nicht niederohmig auf Potential z.B. Masse gelegt) mehrmals ein und bekomme nach den Wandlungen im ADC-Register ((ADCH<<8)|(ADCL)) zufällig verteilte Werte so zwischen 266 bis 313. Diese geben dann die initiale Grundlage für einen altbekannten Pseudo-Zufallszahlengenerator. (elektrisch: Der elektrische Knoten des ADC-Pin ist wegen fehlender externen Beschaltung sehr hochohmung und deshalb sehr empfindlich für EMV-Störungen - wirkt als Antenne für Störungen von intern&extern, es wird also mit dem ADC der EMV-Störnebel abgetastet, und der besitzt idR sehr wohl zufällige Komponente) Soviel zum Thema "Quatsch ADC kann keine Zufallszahlen erzeugen" ;-) Bei mir klappt's an offenem ADC-Pin jedenfalls wunderbar, probier's mal aus! Viel Erfolg!! (ps, Z-Diode: die stabilisiert in NF-Bereich wohl eher als dass sie rauscht?!?!)
>> Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen. >> Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden. Wie wäre es mit: u8 zufallswert; sprintf(zufallswert, "%d", rand() % 255); Und das Ganze an ADC Port zu legen, nur so als Überlegung?
>Ich lese einen offenen ADC-Pin (floatend, nicht beschaltet, v.a. >nicht niederohmig auf Potential z.B. Masse gelegt) mehrmals ein Na dann macht es ja wohl mehr Sinn, noch ein Stück Leiterbahn dranzulöten. Bei TQFP ist der Pin gerade mal 1,5mm lang, der fängt gar nichts ein.
Artur Funk wrote: >>> Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen. >>> Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden. > > Wie wäre es mit: > u8 zufallswert; > sprintf(zufallswert, "%d", rand() % 255); > > Und das Ganze an ADC Port zu legen, nur so als Überlegung? [ ] Du hast verstanden worum es hier geht [ ] Dein Codeschnipsel funktioniert.
In C ist das eine recht simple Sache:
1 | public int getRandomNumber() |
2 | {
|
3 | return 4; // chosen by fair dice roll |
4 | // guaranteed to be random
|
5 | }
|
:))
Travel Rec. wrote: > Na dann macht es ja wohl mehr Sinn, noch ein Stück Leiterbahn > dranzulöten. Bei TQFP ist der Pin gerade mal 1,5mm lang, der fängt gar > nichts ein. Probier's erst mal aus - dann schau ma mal :-P Aber prinzipiell, klar, wer will kann ja noch nen Draht drannlöten :-D wer lang hat, lässt lang hängen... 1.5mm langer Pin ok, und dahinter ist direkt der ADC?!? ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.