Rastgele tercih yaptırma

Başlatan NamTech, 10 Ekim 2018, 17:18:12

NamTech

Merhabalar,

Ben bir uygulama için belirlediğim rakamlar arasında rastgele seçim yaptırmak istiyorum. Örnek vermek gerekirse 300 ile 500 arasında bir sayıyı seçecek ve bu sayıya geldiğinde tepki verecek, sonrasında 500e kadar tepki vermeyecek. Daha sonra yine aynı şekilde 300 ile 500 arasında farklı bir sayı seçecek. CCSC de bu işi yapabilecek hazır bir uygulama var mı? Eğer yoksa bu işi yapabilmem için tavsiyeleriniz nedir?

Yardım edecek arkadaşlara şimdiden teşekkür eder, projelerinizde başarılar dilerim.
Kim Ne Derse Desin Alelade Birisi.

e-zeki

rand() ve srand() fonksiyonları olması lazım tam hatırlamıyorum. bu ikisinin birlikte kullanımıyla rastgele sayı üreteci yapılıyordu diye hatırlıyorum.

telbozan

  Timer kullanarak basitçe yapabilirsiniz. Timer a FOSC giriş olarak ayarlayın. 16 bit Timer değerinin mod 500 ünü alın.

saybatli

https://www.youtube.com/watch?v=jnt5AkDS8RQ

Bu videoda renk oyunu yapılmış 1 ile 4 arasında rastgele rakam seçip ledleri yakıyor bu video işine yarayabilir.

ertan

Merhaba ;
Böyle hazır bir sistem tabi kide yok. Bunun için sizin sıfırdan yazmanız gerekiyor. Bu işlem için özel fonksiyonlar var. Önce onlar hakkında fikir sahibi olmalısın. Kısaca sana özet geçeyim;

RAND()
Bu fonksiyon rastgele sayı üretir. Burada dikkat etmen gereken birinci kural rastgele üretilen sayı en fazla,stdlib.h dosyasında belirtilen RAND_MAX  değeri kadar alır. Bu fonksiyonu kullanabilmen için de programın başına şunu eklemelisin;

#include<stdlib.h>//bu kodu program başına eklemelisin hem rand() için hem de srand() fonksiyonu içinde

For example;
int a;
a=rand()

bu ne demek a değişkenin 0 ila 255 arasında rastgele deger alır demek.
ama diyelim ki sen değişkenine şu değeri vereceksin
a=20; bu durumda programı yeniden çalıştırdığında aynı değeri aldığını görürsün. bu durumu önlemek içinde srand() fonksiyonu kullanılır.

SRAND()
rand()  fonksiyonunda , rand() ile üretilip değişkene aktarılan rastgele bir sayı her program çalışmasında değişmez.  srand() fonksiyonu bunu önler.  srand() fonksiyonunda belirtilen değer değiştikçe rand() fonksiyonunun ürettiği değer de değişir.  Bu işlemi sürekli hale getirmek için srand(value) fonksiyonunda "value"  kısmını sürekli değiştirmek gerekir. "value" kısmı sistemde değişken bir duruma bağlanabilir.

srand(value);
srand(read_adc);
x=rand();

yukaridaki komut ile analog girişten gelen sinyal değiştikçe x'in değeride her program tekrarlandığında değişir.

NamTech

Yanıtlar için teşekkür ederim arkadaşlar.

Nasıl yapacağım hakkında fikir sahibi oldum. Örnek vermek gerekirse Telbozan arkadaşın timer önerisi ışığın yanmasına sebep oldu.

Herkese yardımları için teşekkürler.
Kim Ne Derse Desin Alelade Birisi.