Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Générer un nombre aléatoire pour µC



  1. #1
    jeym21

    Générer un nombre aléatoire pour µC


    ------

    Bonsoir à tous, je suis en train de programmer un petit jeu en C avec un pic16F819, j'utilise mplab X, le compilateur XC8 et le pickit3.
    J'aimerai savoir si il est possible de générer un nombre aléatoire comme en java avec le Maths.random, et si c'est possible, comment ? ^^'

    -----

  2. Publicité
  3. #2
    paolo123

    Re : Générer un nombre aléatoire pour µC

    Bien sûr, En utilisant le timer0 (Codé sur 8 bits) du pic tu peux générer n'importe quel nombre compris entre 0 et 255 aléatoirement
    En utilisant le timer1 (Codé sur 16 bits) du pic tu peux générer n'importe quel nombre compris entre 0 et 65535 aléatoirement

  4. #3
    jiherve

    Re : Générer un nombre aléatoire pour µC

    Bonsoir,
    As tu fait une recherche avec :random number generation ?
    Autrement une solution très rapide ne demandant que des opérations élémentaires : Pseudo random number generator ou LFSR.
    JR
    l'électronique c'est pas du vaudou!

  5. #4
    gcortex

    Re : Générer un nombre aléatoire pour µC


  6. A voir en vidéo sur Futura
  7. #5
    freepicbasic

    Re : Générer un nombre aléatoire pour µC

    Code:
    _Random
    	movf 	_RAM1,w		; First, ensure that hiB and lowB aren't
    	IORWF	_RAM2,w		; all zeros. If they are, NOT hiB to FFh.
    	btfsc	STATUS,Z	; Otherwise, leave hiB and lowB as is.
    	comf	_RAM1,f
    	movlw 	128		; We want to XOR hiB.7, hiB.6, hiB.4
    	btfsc	_RAM1,6		; and lowB.3 together in W. Rather than
    	XORWF	_RAM1,f		; try to line up these bits, we just
    	btfsc	_RAM1,4		; check to see whether a bit is a 1. If it
    	XORWF	_RAM1,f		; is, XOR 80h into hiB. If it isn't,
    	btfsc	_RAM2,3		; do nothing. When we're done, the
    	XORWF	_RAM1,f		; XOR of the 4 bits will be in hiB.7.
    	rlf 	_RAM1,w   	; Move hiB.7 into carry. 
    	rlf 	_RAM2,f 	; Rotate c into lowB.0, lowB.7 into c. 
    	rlf 	_RAM1,f		; Rotate c into hiB.0. 
    	retlw	0			;
    A+, pat

  8. #6
    jeym21

    Re : Générer un nombre aléatoire pour µC

    Merci pour vos réponses !! l'utilisation du timer0 me plait bien pour l'instant.
    A+

  9. Publicité
  10. #7
    ftorama

    Re : Générer un nombre aléatoire pour µC

    Sous XC8, il y a une fonction random....Suffit d'ouvrir la doc.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  11. #8
    paolo123

    Re : Générer un nombre aléatoire pour µC

    Voici un exemple simple qui génère un nombre aléatoire entre 0 et 100 avec le compilateur Mikroc et en utilisant le Timer0

    Code:
    char Valeur_Hasard(){
    
    TMR0 = 0;
    unsigned char valeur;
    
    do{
    
    valeur++;
    if (valeur == 100 ) valeur = 1;
    }
    while (TMR0 > 0);
    
    return (valeur);
    
    }
    
    
    
    void Result (unsigned char  valeur){                    
    
                switch( valeur){
                case 10: PORTB=0b00000000;            // Cas ou la valeur est 10
                break;
                case 55: PORTB=0b00001000;            // Cas ou la valeur est 55 par exemple
                break;
                .............................
    }
    }
    Ensuite tu peux exploiter le résultat comme tu le souhaites
    Dernière modification par paolo123 ; 02/03/2014 à 20h48.

Discussions similaires

  1. générer un nombre aléatoire en fortran
    Par bbdoll dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 06/08/2012, 09h59
  2. [SCILAB] Générer un nombre aléatoire
    Par nikob88 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 31/05/2012, 12h05
  3. Réponses: 0
    Dernier message: 14/04/2012, 16h54
  4. comment générer une tension aléatoire?
    Par led23 dans le forum Électronique
    Réponses: 6
    Dernier message: 26/03/2008, 13h46
  5. Générer un entier aléatoire en C++
    Par LicenceXP dans le forum Logiciel - Software - Open Source
    Réponses: 23
    Dernier message: 16/10/2006, 20h57
Découvrez nos comparatifs produits sur l'informatique et les technologies.