Het onderwerp zegt eigenlijk al genoeg..
Ik heb nu een heel eind geprogrammeerd wat ik wil, alleen nu ben ik hard op zoek naar een random getal.
Zo niet, is er een makkelijke oplossing om het als hardware eromheen te bouwen?
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Ik weet niet precies wat je ermee wilt, maar je zou met een externe interrupt bijvoorbeeld de counter waarde als random nemen. Dus zodra er een externe interrupt optreed de counter uitlezen en die als random getal gebruiken. Beter random kan niet 
Ja, ik heb er een paar 2 kleuren ledjes op aangesloten die in een doorzichtige ventilator zitten. Die nu allerlei effecten doen, maar nu wil ik eigenlijk dat hij random die effecten kiest, maar toen kwam ik erachter dat dat er volgens mij niet in zit.
Hoe zal ik dat dan doen? gewoon een 555 tellertje snel laten tellen op een ingangspootje en dat een paar keer uitlezen en dan die waarden bij elkaar optellen? Of kom ik dan niet helemaal random uit?
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Je moet eerst ff zoeken (met google), want volgensmij bestaan er wel complete routines op het internet voor random generatie in een 16f84. Ik dacht het wel eens te zijn tegengekomen. Mocht je niks vinden dan kun je met de interne Timer0 en een externe 555 die een interrupt genereert wel een random functie maken.
ohh.. ik ben al een stukkie verder.
Ik vond hier hele mooie software voor pic16f84, namelijk tetris voor op de tv!
http://www.web-ee.com/Schematics/PICTetris/PICTetris.htm
"New blocks are selected at random, where the random number is a counter that increases
for every frame, making the random number dependent of how long it takes for the player to place
the block, making a quite good random number."
dat stond in een tekstfile hoe ze daar de random functie maakten.
Ze gebruiken gewoon de 8 bit counter. Alleen zal dit bij mij denk ik niet geweldig werken omdat ik geen uitwendige inputs heb en zal hij dus na precies evenveel counter getallen weer bij de random functie aankomen en zal weer hetzelfde getal krijgen..
maar het is al een zet naar de oplossing 
Confusion
There are only 10 types of people in the world - those who understand binary, and those who don't
Heel toevallig.
Vanmiddag was ik ook op zoek naar een random generator voor de pic.
Misschien heb je hier iets aan?
http://www.piclist.com/techref/microchip/rand.htm
sven
pointers don't kill programs, programmers kill programs
neem een counter die je steeds laat oplopen, eventueel vermenigvuldigd / gedeeld door de program counter (als een pic dit heeft)
of
neem een ruisgenerator met erachter een schmitt-trigger. Dan krijg je dus random een 1 of een 0. Lees dit 8 keer in en je hebt een random byte...
[Bericht gewijzigd door sven op ]
Op 28 januari 2003 23:35:51 schreef Confusion:
Heel toevallig.
Vanmiddag was ik ook op zoek naar een random generator voor de pic.
Misschien heb je hier iets aan?
http://www.piclist.com/techref/microchip/rand.htm
ohh geweldig! dit had ik dus nodig
clrc
rlf Number, 1
swapf Number, 0
andlw 0xE0
rrf Number, 1
addwf Number, 0
addwf Number, 0
addwf Number, 0
sublw 0x35
movwf Number
kheb dat ff uitgeprobeerd, en werkt perfect, volgens mij zit er helemaal geen ritme in.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 28 januari 2003 23:08:20 schreef Ralpy:
Ik heb nu een heel eind geprogrammeerd wat ik wil, alleen nu ben ik hard op zoek naar een random getal.
Wat dacht je van 42? 
Echt random is lastig, de beste manier is om een actie van de geruiker te timen, bv een knop indrukken.
Wat jij nodig hebt (en al hebt gevonden) is een pseudo-random generator. De meest gebruikte zijn zg. Linear Feedback Shift Registers, google maar naar LFSR.
Overigens heeft Jal gewoon een random library.
Confusion
There are only 10 types of people in the world - those who understand binary, and those who don't
Op 28 januari 2003 10:23:44 schreef Wouter van Ooijen:
...
Overigens heeft Jal gewoon een random library.
...
Heb ik gebruikt.
Alleen een probleem wanneer je een random getal nodig hebt direct nadat je de pic hebt opgestart.
Dit heb ik opgelost door de X in Randomize(X) op te slaan in de Eprom en deze telkens met 7 op te hogen en vervolgens de eerste uitkomst van random_byte te negeren.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 29 januari 2003 12:54:50 schreef Confusion:
Dit heb ik opgelost door de X in Randomize(X) op te slaan in de Eprom en deze telkens met 7 op te hogen en vervolgens de eerste uitkomst van random_byte te negeren.
Slim! Heb je gekeken hoe vaak je nu je PIC mag opstarten voordat de eeprom versleten is? Zal in de praktijk wel goed gaan denk ik.
Confusion
There are only 10 types of people in the world - those who understand binary, and those who don't
Klopt het dat op pagina 92 van de datasheet van Pic 16F84 staat dat dit geheugen minimaal 1 miljoen keer herschreven kan worden?
Dan heb ik geen probleem.
Uitgaande van in het ergste geval 20x opstarten per dag:
(1.000.000 / 20 ) / 365 = 136.9
is nog altijd bijna 137 jaar 
[Bericht gewijzigd door Confusion op ]
Ikheb nu dit stukkie gemaakt:
clrc
rlf Random, 1
swapf Random, 0
andlw 0xE0
rrf Random, 1
addwf Random, 0
addwf Random, 0
addwf Random, 0
sublw 0x35
movwf Random
BTFSC Random,2
GOTO Ixx
GOTO Oxx
Oxx BTFSC Random,1
GOTO OIx
GOTO OOx
Ixx BTFSC Random,1
GOTO IIx
GOTO IOx
IIx BTFSC Random,0
GOTO III
GOTO IIO
IOx BTFSC Random,0
GOTO IOI
GOTO IOO
OIx BTFSC Random,0
GOTO III
GOTO IIO
OOx BTFSC Random,0
GOTO OOI
GOTO OOO
En al die goto ??? stuur ik 1 ledje mee aan, maar dan kom ik erachter dat hij helemaal niet random is maar:
4,3,2,5,8,3,2,1 enz...
nu snap ik er helemaal niets meer van.. dacht echt de oplossing te hebben
Kheb het nu ook met een ne555 tellertje geprobeerd, maar dat werkt ook voor geen meter bij mij. Want de aanpuls is bijna nooit even groot als de uitpuls.
Ik ga morgen wel iets verzinnen om dat pseudo-random ding op te tellen bij die 8-bits couter en weer iets anders af te trekken ofzo..
iemand nog een goed idee? want dat heb ik ech nodig
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer