hangi komut nekadar gecikme yapıyor?

Başlatan digifuzyon, 04 Temmuz 2007, 20:39:54

digifuzyon

herkeze merhaba
Hitech compiler kullanıyorum

Yanlız hangi komutun nekadar lık bir geçikmeye neden oldugunu bilmiyorum

nasıl ögrenebilirim hangi kiristalde hangi komutun ne kadar lık bir geçikmeye neden oldugunu nasıl bulabilirm

salih18200

arkadaşım hi-tech için böyle bir sorunun geçerli olacağını sanmıyorum çünkü bunu hesaplaman gerekir mesela bi for döngüsünde kaçdefa döneceğin içerideki komutlar filan senin süreni etkileyecek şeylerdir bence komutlarını adım adım derleyerek asm datasına bakarak ordan hesaplayabilirsin.Başka bir yöntemse zamanlamanın mühim olduğu yerleri asm ile yazabilirsin.
benim bildiklerim bunlar bende hi-tech de yeniyim ama burda bu işin adeta uzmanı olmuş arkadaşlar var onlarda yardım bekliyelim :)

digifuzyon

peki her komutu derleyip asm koduna nasıl bakıcam asm dosyası oluşturmuyo derledigimde

salih18200

dedimya bende yeniyim şu anda bilgisayarımda program kurulu değil ondan önce ccs kullanıyodum asm dosyası sanırsam onda oluşuyodu karıştırmış olabilirim ben sana yol göstermesi açısından yazdım çün kü bazen sorularımızın cevabı çok zor geliyo özelliklede hi-tech işin işine girerse bi hayli bekleyebilirsin yanlışım için özür dilerim :?

Ralgac

yazdıgın kodu mplab da derle ve similasyon moduna gec sonra debugger -----StopWatch ı tıkla ve step over tuşuna veya F8 tuşuna basarak adım adım ilerlet hangi komudun kaç komut saykılında işledigini   izleye bilirsin veya bir for döngüsünde yaptıgın gecikmenin kaç komut saykılı  oldugunuda görebilirsin bunun için de ister F8 ister sen F7 tuşlarına basarak StopWatch dan gecikmeyi gözlemye bilirsin ve for döngüsü içindeki sayılarla oynayarak istedigin bir zamanda gecikme yapabilirsin. gelelim buradaki komut işleme saykılları ile pic deki kullndıgın kırıstale göre yani sen diyelim 4Mhz kırıstal kullnıyon ve StopWatch da da yaptıgın for döngüsününün 20 komut çevrimi oldugunu gördün 4Mhz kırıstal dede 1 komut çevrimi 1 mikro sn dir  yani gecikmen 20x1=20 mikro sn dir kullanacagın entegrenin data  kullanacagın kırıstal/4  1/f  den osc formülünü kullanarak 1 komut saykılının kaç mikro sn oldugunu hesaplayarak bulabilirsin örnek1 : 4Mhz / 4 = 1  1/f den 1/1 = 1 mikro sn  örnek 2 : 2oMhz lik bir kırıstal 20/4=5   1/5=0.2 mikro sn  bence hi-tech içindeki gecikme sample lerini mplabda  bu şekilde incelersen sanırım mantıgı daha hızlı ögrenebilirsin
hi-tech derleyicisinde program içinde kullandıgın her hangi bir  komudun kaç mikro sn oldugunu kolaylıkla görebilirsin ben sadece hi-tech derleyicisinde 8.05 derleyicisinde denemiştim  sanırım ccs ve pbp dede bu şekilde kullanılabilir
iyi çalışmalar

Chan86

zaten derlediğinde asm dosyası oluşturmaz o assembly dosyasıdır içinde asm programı vardır Us(?) mikro saniye üzerinden gezikme yapar Ms(?) mili saniye üzerinden gecikme yapar yalzır Us yi 500 den fazla Ms yiyde 250 den fazla kullanma sorun veriyor iyi çalışmalar

Ralgac

şu an tam hatırlamıyorum ve 8.05 versiyonunda ki sample dosyasında gecikmeleri kontrol ediyodum 500 mili sn de 5 mikro sn  fazla cıkıyodu ve duşunun  10 dakika gecikme yaptıgını 6000 mikro sn hata olusur    
iyi çalışmalar

CLR

Merhaba

Tüm C derleyicileri, LST uzantılı bir dosya üretirler bu dosyadan , yazdığınız C  programının karşılığı olan asm programını inceleyebilirsiniz.
Knowledge and Experience are Power