E

SİN FONKSİYONU

Başlatan ELZEMEFE, 19 Şubat 2013, 19:18:42

ELZEMEFE

x=255*(1+sin(6.28*a/b))/2

Merhaba arkadaşlar yukarıdaki fonksiyonu pbp de yazabilrimisniz
Ben  oldukça uğraştım bir yere kadar geldim .. ama olmadı..
Denediklerimi buraya koymakta  istemedim biraz acemice gibi  oldu..

a değeri  değişken dongüye giriyor ve 0-255 arası sayabiliyor
b değeri a'nın max değerine göre o değeri alıyor..

Arkdaşlar fonsiyonu r-2r DAC ile porta gönderip sinüs sinyali çıkarmaya çalışıyorum
for a=0 to 34
x=255*(1+sin(6.28*a/34))/2   ''/// tabi bu fonksiyon burda olmuyor...
portb=x
next

gibi ...

                                                              teşekkürler  şimdiden

ELZEMEFE


Mucit23

Adım adım yap, Tek birseferde o komutu yazıp işi bitiremezsin basicde, İlk önce a'yı b'ye böl, Sonra 628 ile çarpıp sonucu 10'a böl, Daha sonra elde ettiğin değerin sinüsünü alıp 1 ekle.... Şeklinde yap bakalım sonuç ne olacak.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Temp=(628*b/a)/100
X=255 * (1+Sin(Temp))/2

Şeklinde olabilir.
Temp değişkeni Word cinsinden olmalıdır.

Ete

zengar

#4
SİN fonksiyonunun nasıl çalıştığını iyi anlamak lazım. İşin içinden çıkamazsan,  lookup tablosu yapmaya çalış ozaman işin kolaylaşır. Yani;


Temp=(628*b/a)/100
if Temp=10 then sinüs=0.17
if Temp=20 then sinüs=0.34
if Temp=30 then sinüs=0.5
if Temp=40 then sinüs=0.64
...
.
.

X=255 * (1+sinüs)/2

işte buna benzer bişey, değerleri salladım böyle devam ederek hassasiyeti artırabilirsin.
umarım işini görür
selametle..



toprak

#5
x=(255*(1+sin((628/100)*(a/b)))/2

Bu şekilde bir deneyebilir misin?
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ELZEMEFE

Fonksiyonu exel de deniyorum .. orda liste  ile karşılaştırma yaptım  olmadı .. ne eksik anlamadım...
pıc basıc editor SİN ile normal sin arasında sanki fark var gibi .. ama çözebilmiş değilim  ....

ELZEMEFE

Arkadaşlar  yanıt  oalrak bu formda bulduklarım  çözüm  oldu

http://www.picbasic.co.uk/forum/showthread.php?t=14359

deneme için  kullandığım  kod ;
for t=0 to 255
sinr=((sin(t)+128)*4)
pauseus 100
portb=sinr
next

sin komutu biraz zaman alıyor.. genel olarak  incelediğimde ...


Powered by EzPortal