Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : nombre aléatoire en asm 16f84 [ Archives / Les PIC ] (sodhaine)

mardi 20 juillet 2004 à 15:56:29 | nombre aléatoire en asm 16f84

sodhaine

Bonjour,
Je suis un newbie-moyen en assembleur/électronique; j'essaie de faire un dé électronique en assembleur 16f84 (avec affichage sur écran LCD) et je me heurte à un problème: comment générer un nombre aléatoire en assembleur 16f84 ? est-ce que quelqu'un à une idée, une routine?
Merci d'avance pour votre aide.
aVr

PS: pourquoi le faire en assembleur ? parceque j'aime ça... .

lundi 16 août 2004 à 21:46:41 | Re : nombre aléatoire en asm 16f84

pjb

il y a plein de méthodes pour faire cela, la meilleure est d'utiliser le timer et un bon petit modulo ! très fastoche et ça marche très très bien (et en plus, le timer est un registre du 16f84, ce qui facilite bien les choses...)

pour le timer du PIC 16f84, vas la dessus par exemple

http://p.may.chez.tiscali.fr/timer.html

@+

vendredi 3 septembre 2004 à 00:12:10 | Re : nombre aléatoire en asm 16f84

CoreBreaker

Beaucoup de générateur pseudo aléatoire se basent sur une multiplication et un modulo du style en C:

rnd= ((seed + a) * b) % c;
seed= rnd;

seed est la graine en général on utilise un timer ou une horloge
a, b, c sont des paramètres qui vont déterminer la périodicité et la répartition statistique des nombres sur un echantillon, elle sont déterminer au pifomètre

il fo donc implémenter une multiplication nb_a * nb_b
le résultat est renvoyé dans res1 pour la partie haute (MSByte) et res0 pour la partie basse (LSByte)

muliplie
movlw 8
movwf counter

movf nb_a, W
movwf tmp0
clrf tmp1
clrf res0
clrf res1

boucle_mul
rrf nb_b, F
btfss STATUS, C
goto next_mul

movf tmp0, W
addwf res0, F
btfsc STATUS, C
incf res1, W

movf tmp1, W
addwf res1, F

next_mul
bcf STATUS, C
rlf tmp0, F
rlf tmp1, F

decfsz counter, F
goto boucle_mul
return

a l'initialisation du générateur pseudo-aléatoire
tu dois faire
movf TMR0, W
movwf seed

le paramètre C vaudra 256 ce qui équivaut à prendre l'octet de poids faible du résultat de la multiplication
pour le paramètre A il doit être un nombre premier

ensuite pour calculer le nombre suivant:
generate_rnd
movf param_b, W
movwf nb_b

movf seed, W
addwf param_a, W
movwf nb_a
call multiplie

; on fait ici le mdulo b, on ne prends donc que l'octet de poids
; faible du résultat de la multiplication
movf res0, W
movwf rnd_num
movwf seed
return

Le nombre aléatoire rendu est dans RND_NUM

Core Breaker

jeudi 4 mai 2006 à 22:00:33 | Re : nombre aléatoire en asm 16f84

nicolo84

Merci Corebreaker,

  Je cherche depuis un moment ce programme pour faire un jeux de lumières  pour ma petite fille ! 



Cette discussion est classé dans : nombre, aléatoire, assembleur, asm, 16f84


Répondre à ce message

Sujets en rapport avec ce message

GENERATUER NOMBRE ALEATOIRE EN ASM [ par fser ] | -= Fr@nçois =- | (cliquez pour m'envoyer un mail)mon siteMERCI DE FAIRE PARVENIR UN PROGRAMME EN ASSEMBLEUR POUR 68 HC 11 POUR GENER Question ASM [ par LordBob ] Bonjours a tous,voila en fait j'aimerais me lancer dans la programmation en assembleur, je viens donc d'acheter un petit bouquin qui traite du sujet e Sous-procedure externe en Assembleur ? [ par cbil ] débutant en c/c++, flash et asm- Me contacterBonjour à tous,J'utilise TASM et j'aimerais faire une sous procedure externe.J'ai tester un exemple, (je Où avez vous appris l'assembleur [ par Joe0557 ] Bonjour, Je m'interresse depuis quelques temps à la programmation en ASM, mon projet final serait de faire un OS (je sais qu'il est très compliquer d' OS -> passer d'ASM au C pour la programmation [ par djmoa ] Bonjour. j'ai quelques notions d'assembleur, et j'aimerai commencer la programation d'un petit OS, me basant sur des choses existant, mais je vois bea Avez-vous des algorithmes pour la génération de nombre aléatoire? [ par Rigel Io ] Salut, ma question est donc assez simple je voudrai seuleument savoir comment générer des nombres aléatoires. Je voudrai savoir car à chaque fois que Aide nombre en asm 8086 16 bits [ par Maureka ] je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri résoudre un exercice en assembleur [ par imenal ] J'ai pas pu résoudre cet exercice en assembleur.Est ce que vous pouvez m'aider?EnoncéEcrire un programme en assembleur(MASM) qui réalise les opération challenge .asm [ par vincent2795 ] Bonjour, je recherche une source en .ASM si possible détailler,qui consiste a supprimer n importe quelles nombre de caractères en début de ligne sur t assembleur [ par rojbeni ] bonjour tous,comment  faire pour  saisie une suite de nombre  a stocker  dans un tableau   . le nombre maximum de nombre que l'on peut saisir est de 1


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.