Led yakma

Başlatan Mr.Thinking, 09 Aralık 2020, 22:48:55

Mr.Thinking

Bir devrede 3 adet led var. Bir yazılımla da bu ledlerden herhangi birini bir if sorgusuna sokmadan yakmak istiyorum.
Yazılımda ise program koşturucu hangi ledi yakacağına benim koşullandırmalarımla değil kendi karar vermeli.
Başla satırından sonra öyle kodlar yerleştirmeliyim ki yazılım koşturucusu  hangi ledi yakacağını kendi seçsin. Bir nevi şans eseri gibi...
Yani aşağıdaki tabloda "İ" kutusuna gerçekte ne gibi koşulsuz kodlar yazmalıyım ki program "x-y veya z" yollarından birini kendi seçsin ve oradaki ledi yaksın? 
Bunu şöyle de düşünebiliriz:  Program koşturucuyu bir canlı varsayalım ve" i" noktasına geldiğinde içgüdüleriyle "x-y-z" yollarından birini seçsin ve oradaki ledi yaksın.
Sonuç olarak "i" noktasına;  basic,proton ,c, asm veya herhangi bir yazılım dilinde hangi kodları yazmalıyım?
Yazılım koşturucunun dış dünya ile ilişkisi yok tamamen kendi karar verecek bir koşturucu olmalı. Enerjiyi verince çalışmalı kesip yeniden verince yine baştan başlamalı.



ego=1/Knowledge

quarko

[0-3) arasında random sayı üretip, sonuca göre ledi yakabilirsin.
"Vicdanın ziyası ulum-u diniyedir. Aklın nuru fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder."

power20

Rastgele sayı üreten fonksiyon ile yapılabilir.

1..3 arasında üretilen rastgele sayıya göre bir yol seçimi yapar.

Program koşturucu'nun gerçek anlamda rastgele sayı üretmesi için dış dünya ile ilişkilendirmek gerekir. Işık şiddeti, sıcaklık, basılan buton gibi.

Mr.Thinking

#3
Alıntı yapılan: Kılıç - 09 Aralık 2020, 23:02:34Program koşturucu'nun gerçek anlamda rastgele sayı üretmesi için dış dünya ile ilişkilendirmek gerekir. Işık şiddeti, sıcaklık, basılan buton gibi.
Dış dünya ile ilişkisi yok tamamen kendi karar verecek bir koşturucu olmalı. Enerjiyi verince çalışmalı.
ego=1/Knowledge

power20

Derleyicideki fonksiyonlar, sahte üretiyor. Tamamen rastgele olmuyormuş

brandice5

Öncelikle hangi işlemci için? Çünkü bazı işlemcilerde TRNG (true random number generator) peripheral olarak bulunuyor. Bu işlemcilerde donanım zaten size random numara veriyor.

İşlemcinin TRNG peripheral'i yoksa ve dışarıdan herhangi bir girdi yoksa (buton, RTC, ADC vs.) sadece yazılım ile random sayı üretemezsiniz. CPU lar deterministik yapıda olduğu için yazdığınız yazılım işlemciye her enerji verdiğinizde aynı sayıyı üretir.

TRNG donanımı olmayan MCU lar için bazı random number generator çözümleri var. Örneğin MCU nun ADC'si varsa, bir ADC girişini boşta bırakıp, yani ortamdaki gürültüyü ADC girişini anten gibi kullanıp okuyabilir, ve ADC değerine göre random sayı üretebilirsiniz.

volkanunal


Mr.Thinking

Alıntı yapılan: Kılıç - 09 Aralık 2020, 23:57:03Derleyicideki fonksiyonlar, sahte üretiyor. Tamamen rastgele olmuyormuş
ego=1/Knowledge

Mr.Thinking

Alıntı yapılan: volkanunal - 10 Aralık 2020, 00:25:38Ben böyle bir şey yapmıştım, belki fikir verebilir.

https://engineeringvolkan.wordpress.com/2018/03/30/arduino-ve-makine-ogrenimiq-learning-algoritmasi/
Bahsettiğiniz algoritmada öğrenme işi gerçekleştiğinde her seferinde aynı odaya gidecek değil mi? Yani 7 nolu odaya.
ego=1/Knowledge

volkanunal

Evet ama bu durum kurgunuza bağlı, bir çok farklı kurgu yapılabilir.

sadogan

Formdan bir arkadaşımız mcu nun adc pinine kısa bir iletken bağlayıp boşta bırakarak
bu şekilde random sayı üretilebileceğinden bahsetmişti.
Denene bilir.

sezgin

Çalışma hızını etkiler ama farklı girdiler alınıp bir fonksiyona sokulabilir. İlk aklıma gelen, 2 ayrı random sayı üretilip, random bir süre boyunca dışarıdan alınan gürültü ortalamasının fonksiyonunu almak gibi.

JOKERAS

Alıntı yapılan: brandice5 - 10 Aralık 2020, 00:09:11Öncelikle hangi işlemci için? Çünkü bazı işlemcilerde TRNG (true random number generator) peripheral olarak bulunuyor. Bu işlemcilerde donanım zaten size random numara veriyor.

İşlemcinin TRNG peripheral'i yoksa ve dışarıdan herhangi bir girdi yoksa (buton, RTC, ADC vs.) sadece yazılım ile random sayı üretemezsiniz. CPU lar deterministik yapıda olduğu için yazdığınız yazılım işlemciye her enerji verdiğinizde aynı sayıyı üretir.

TRNG donanımı olmayan MCU lar için bazı random number generator çözümleri var. Örneğin MCU nun ADC'si varsa, bir ADC girişini boşta bırakıp, yani ortamdaki gürültüyü ADC girişini anten gibi kullanıp okuyabilir, ve ADC değerine göre random sayı üretebilirsiniz.

@brandice5

Bu durum,Timer Registerleri için de geçerlimi?

@elektro77 , herhangi bir Timer sayıcısını Aktif edip,
içeriğini ledlere yazdır bakalım ne oluyor?




Mr.Thinking

Alıntı yapılan: volkanunal - 10 Aralık 2020, 10:05:16Evet ama bu durum kurgunuza bağlı, bir çok farklı kurgu yapılabilir.
ego=1/Knowledge

Mr.Thinking

#14
Herhangi bir dilde "i" kutusuna yazılabilecek bir kod rica etmiştim ama hep fikir geldi.
Örneğin:
xled var world
yled var world
zled var world

BASLA:(LOOP)(MAIN)
.'Program koşturucu
.
.
.
.
.
.i NOKTASI'???????????'buraya ne yazılmalı ki koşturucu bir koşula bağlı olmaksızın x y ve z den birini seçsin
.
.

GOTO X         GOTO Y        GOTO Z '
**************************************
x:
xled=1

y:
yled=1

z:
zled=1


'GOTO BASLA' GOTO BASLA veya return olma-malı enerji verince çalışacak. Kesip tekrar verince baştan başlayacak.

END
ego=1/Knowledge