Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général en BASIC et PASCAL !

Modérateur : Gérard

Nombre aléatoire
Tango
Débutant
Débutant
Messages : 36
Âge : 67
Enregistré en : février 2017
Localisation : Vosges

#1 Message par Tango » ven. 2 nov. 2018 15:01

Bonjour,

Je veux générer un nombre aléatoire avec un PIC (toujours en Mikrobasic bien sûr !) ou ressemblant, dans le but de réaliser un simulateur de présence. Avez-vous un bout de code qui va bien ? Merci. Cordialement. Bye.
Tango.

Nombre aléatoire
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 419
Âge : 33
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#2 Message par venom » ven. 2 nov. 2018 17:44

Bonjour Tango,

Je ne connais pas du tout Mikrobasic, mais tu n'a pas une fonction type :

Code : Tout sélectionner

Rand() ou random()

Qui gère ça




@++
En fait tout est une question de BIT ? :-D

Nombre aléatoire
Tango
Débutant
Débutant
Messages : 36
Âge : 67
Enregistré en : février 2017
Localisation : Vosges

#3 Message par Tango » sam. 3 nov. 2018 11:37

Bonjour venom et merci pour la répons rapide.

Non, il n'y a pas cette instruction dans MikroBasic ni MikroC. Je vais essayer un système d'interruption avec les "timer". Je vous tiens au jus ... Cordialement. Bye.
Tango.

Nombre aléatoire
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 419
Âge : 33
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#4 Message par venom » sam. 3 nov. 2018 22:37

Tango a écrit :Non, il n'y a pas cette instruction dans MikroBasic ni MikroC.


Je ne sais pas si c'est comme en programmation ordinateur. Mais sous mikroc tu a la fonction Srand(x)

A voir si ça correspond a tes attentes. Après je ne suis qu'un amateur dans le domaine. Peut etre que cette réponse est inapproprié :sifflotte:

Si non, au plaisir de voir ta façon de faire :wink:






@++
En fait tout est une question de BIT ? :-D

Nombre aléatoire
Temps-x
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 954
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » dim. 4 nov. 2018 00:18

Bonjour,

idea ! Peut être une idée, je te le fait en basic PC, car moi je fais que ASM pour Pic

Code : Tout sélectionner


       
  Dim Durer as integer

  Dim Temps as integer
  
  For Durer 
= 1 to 1000

   If Temps 
>= 255 then 
         Temps 
= 0
    else
      Temps 
= Temps + 1 
  end if
    
 next Durer
  


Relancer 2 fois le programmes, pour avoir un nombre aléatoire

La variable Temps n'est jamais remise à zéro, à par si elle dépasse la valeur préconisé, à chaque relance tu auras des valeurs différente.

==> A+
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

Nombre aléatoire
pspic
Débutant
Débutant
Messages : 32
Âge : 71
Enregistré en : septembre 2017
Localisation : 68

#6 Message par pspic » lun. 5 nov. 2018 07:50

Bonjour,
Voici une solution en MikroBasic (Source: Forum Mikroe) :

Code : Tout sélectionner


 
'Pseudo-Random number generator
dim RANDOM as byte

sub procedure DO_RANDOM
    asm
      RLF     MAIN_GLOBAL_RANDOM,W
      RLF     MAIN_GLOBAL_RANDOM,W
      BTFSC   MAIN_GLOBAL_RANDOM,4
      XORLW   1
      BTFSC   MAIN_GLOBAL_RANDOM,5
      XORLW   1
      BTFSC   MAIN_GLOBAL_RANDOM,3
      XORLW   1
      MOVWF   MAIN_GLOBAL_RANDOM
    end asm
end sub

main:
ADCON1 = 0
TRISB = 0
PORTB = 0
RANDOM = 1

While true
      DO_RANDOM
      PORTB = RANDOM
      delay_ms(500)
Wend
end 


Retourner vers « Langage BASIC & PASCAL »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité