y=sin(x) örnek çözüm

Başlatan ilhan_mkp, 03 Temmuz 2012, 23:31:31

ilhan_mkp

hocam tablo kullanmazsak ben avr uğraşıyorum  çarpma veya bölme için en iyimser senaryo ile 60 clock kadar zaman harcıyorum.
tablo yöntemi mantıklı peki hocam bu assembler olayını geliştirmek adına  tavsiyeliriniz varmı.
bulduğum assembler örnekleri pek öğretici değil meşhur japon chanin dört işlem çin yazdıı kodları çatpat anlıyorum ama iş bir lcd sürmeye gelince işler biraz karışıyor.

ilhan_mkp

avr assembleri yalayıp yutmak istemiyorum hocam. bu assembler hevesini c öncesi temel eksikleri gidermek adına yapilan bir eğitim gibi düşünün yanlişmi düşünüyorum bilmiyorum ama assembler ile bir kaç hobisine iş yapayım diyorum.
avr assembler kod yazabilmek için en bol örnekli işlemci gibime geliyor.
nasip olurda temel mantıkları öğrenirsem  maliyet müşteri istekleri terazisinin topuzu bukadar geniş bir alanda gezerken tabiki c ile keyif içinde işlemci seçmek isterim.
unutmadan hocam daha öncede söyledim ben yazılım üzeri çalışmıyorum iş yerimde yazılm işleri var ama ben hala yetersizim şimdilik plc akıllı röle işlerine devam c ile güvenim geldiğinde yapılacak iş çakılı.
direk c ile bu işlere dalsak sorun yaşanmayacağını düşünüyorsanız ben kendi cabarımla c öğrenmeye çalışayım ödevmişçesine bir konusu üzerine kafa yorarım bi devre tasarımı yapar donanım yazılım olarak yanlışları doğruları alternatif çözümleri konuşuruz sonuçta c bilen çok

ilhan_mkp

hocam vallahi tam üzerine bastınız acıkçası dile takılıp kalmaktansa bol uygulama yapıp algolaritmalar üzerine konuşmak lazım ama açtığımız çoğu konu hangi dil vs mesela modbus gibi standart bir haberleşme protokolü mesale pid kontrol için autotune yöntemleri vb konuları çok az tartışıyoruz.
dilden çok ben ı2c haberleşmeyi bile bilmiyorum adc okuma konusundada bir sürü soru işareti var datasheetleri birazdaha didiklemek lazım
bi yerden başlamak lazım bence mesela adc adc okuken kesme ile okuyabiliyoruz bu kesme ne zaman oluşuyor iki ksme arası süre hep aynımı olur herhangi bir işlemci için cevaplasanız olur önce işlemcinin donanımları neler yapabiliyor bunları irdelemek istiyorum
tabi zaman sorunum var eve bu saatte gelip 7de yine işe gidiyorum onun için bi süredir sadece soru sorup cevap okuyabiliyorum.

DumrulBey

Alıntı yapılan: gerbay - 31 Ağustos 2012, 00:25:02
Hocam ben bu konuda şöyle düşünüyorum;

Hepimiz Tükçe biliyoruz ama kaçımız şiir, güzel makale ya da edebi eser meydana getirebiliyoruz?

Önemli olan C bilmek de değil, önemli olan programlama tekniğini, veri yapılarını, algoritmaları iyi bilmek..
Hocam, gayet güzel bir noktaya temas etmişsin ki kaçırdığımız nokta belki de hep bu. İşte bu tür tartışmalar (assembly mi, yüksek seviyeli mi?) kimi zaman yapılır. Hatta hatırlıyorum, forumda bu konuda uzun süren başlıklar var. Ama sanırım PC'lerde olmayan bir kavramdan sorumluyuz. Bu da tekniker ile mühendis arasındaki kalın çizgiyi ifade ediyor. Mühendis hesabını yapıp imzasını atıyor. Ancak tekniker gerektiğinde kalemi eline alıp hesap da yapacak, havya ile lehim de. Yani yaptığımız işler kağıt üzerinde sanal şeyler değil. İşin kuramı başlangıçta bizi bir yere götürüyor, pratikte ise neler ile karşılaşacağımızı tecrübe ile bilmekteyiz.

Dip Not: Hoş C derleyicisi (compiler) tüm C olanaklarının %100'nü destekliyor mu ki sizi yarı yolda bırakmasın. Haa keza, kodunuz assembly diline (assembler değil, o derleyicisi demek) çevrildiğinde, aralarda bir sürü çöp kod yer alıyor. Günümüzde ise tıpkı PC'lerde olduğu gibi kapasite/hız artıyor. Dolayısıyla assembly ile kaynakları iyi kullanan kod yazmak gereksizleşiyor. Ancak hassas uygulamalarda assembly bilmeli ve ona güvenmeli...:)

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

Tagli

Derleyicilerde bu tür fonksiyonların ne şekilde makine koduna dönüşeceği ile ilgili seçenekler olsaydı hoş olurdu. Hız isteyen tablo kullanır, az yer kaplamasını isteyen polinom kullanırdı. Assembly ile uğraşmaya da gerek kalmazdı.
Gökçe Tağlıoğlu

fractal

ben 100hz ile 800hz arasında değişen sinüslerim için tablo kullanmadım.şimdi aslında tek bir tablo kullanılabilir örnekleme için.sadece frekans artıkça cözünürlük değişir.

ben tüm değerlerimi o frekans için hesaplayıp bir diziye atıyorum.sonuç olarak tablodan okumakla arasında bir fark yok.sadece hesaplama işi var.

sinüs tablosu oluşturuldu.pwm çözünürlüğüde  önemli kaç bit kullanılıyor.8 bit ise virgülden sonraki 2,3 basamak ne fark ederki...
Restantum cogniscutur Quantum deligutur