Microcode kodlama hakkında soru

Başlatan lgoktengri, 02 Ekim 2021, 14:41:00

lgoktengri

Öncelikle konunun yeri burası değilse çok özür dilerim. PİC16F628A ile bir dtmf devresi yapmak istiyorum. Microcode hakkında bilgilerim çok temel düzeyde ve yazılan bazı kodları anlayamıyorum. Aşşağıda resimde vericeğim kodların bana tam olarak ne anlama geldiğini anlatabilirseniz hem kodlama kısmını anlayacağım hemde devrenin çalışma mantığı hakkında bilgi sahibi olacağım. Şimdiden çok teşekkürler.

Soru 1) Button kodu ne anlama geliyor
 
Soru 2) resimde de göreceğiniz BUTTON STD,1,255,0,b1,1,DECODER1 kod satırı ne anlama geliyor ve nasıl okunuyor(STD BURDA CM8870'İN BACAĞI), 1,255,0,b1,1,DECODER1 gibi sıralanmış kodlar ne anlama geliyor(b1 programlama içinde b1 var bye ve ardından b1=0 olarak tanımlanış, decoder1 ise aşşağıda görebilirsiniz zaten)

Soru 3) Aşşağıda dtmf2  kısmında while b3<75 ne anlama gelmektedir. (75'in nerden geldiğini anlamadım)

aynı sayılar ete hocamın dtmf devresinde paylaştığı kodlarda da ;
SAYAC  VAR BYTE 79
ZAMAN  VAR WORD 60
SURE   VAR word 62

şeklinde kodlanmıştı. Burdaki sayılar bir sayı sistemine göre kodlama falanmıdır yardımcı olursanız çok sevinirim. DTMF devresini bir kere anlayıp kafamda oturtabilirsem cidden ileride çok işime yarayabilir. Belki sorduğum şeyler çok basit şeylerdir ama anlayamıyorum malesef. Bu konudaki bilgi eksikliğimden dolayı hepinizden özür dilerim. Şimdiden yardımcı olacak herkese çok teşekkür ederim.



MB_77

#1
bu mesaj tarafımdan silinmiştir.

ete

Önce soruları cevaplayayım, Button komutu ile ilgli küçük bir açıklama vereyim önce. En sevmediğim Basic komutudur bu. Bir sürü parametresi olan komutları sevmem. Üstelik komut parametreleri ile bilrikte bana çok anlamsız gelir ve hiç bir programımda kullanmadım desem yeridir. Çünki çok basit bir kaç farklı komut ile Buton komutunun yapacağından daha iyi sonuçlar alınabiliyor. İşiniz basit ise yani yanlızca bir tuşa basılıp basılmadığını kontrol edecekeniz bu kadar parametre size fazla gelir. Bu nedenle kullanmadığım bir komutun açıklamasını tam olarak da vermem pek mümkün değil ama yinede tercümeye dayalı bir açıklama vereyim istedim.
1-2. Buton kodu ne anlama geliyor sorusu ile ikinci sorunun cevapları aynı bu nedenle tek cevap vereceğim.  Button pin, down , Delay , Rate ,Bvar , Action , Label
Pin= Butonun bağlı olduğu pin olup senin örneğinde STD ismi verilen pin.Tabiiki illa bir buton yada anahtar olması gerekmiyor. Burada olduğu gibi bir entegrenin çıkış veren bir pini bir sensörün bağlı olduğu bir pin olabilir.
Down= Butona basılınca pinin alacağı lojik değer "1" veya "0"
Delay=0-255 arası değer alıyor. Buna Tuş titreme gecikmesi diyebiliriz. 0 olursa hiç bir gecikme verilmeyecek, 255 verilirse tam tuş titreme gecikmesi veriliyor
Rate= Otomatik tekrar kademesi yada değeri.
Bvar=Byte cinsinden bir değişken ismi. Ne işe yaradığını çok iyi anlamadım maalesef.
Action= Tuşa basıldığında tuş pininin alacağı değeri belirliyor. 1 veya 0 verilebiliyor.
Label= Bir etiket ismi olup eylem yani tuşa basılınca verilen diğer parametrelere uyuyor ise işlem bu etikette sonlanacaktır.

3. IF B3<75 komutu B3 değeri 75 den küçük ise anlamına geliyor. Komuttaki 75 rakamı ise programı yazan kişinin süre konusundaki tercihi. Komut b3 değişkeninin değeri 75 olana dek tuşa basılmasını bekliyor. Her adımda b3 değerini bir artırıyor ve sonunda 75 olduğunda o while-wend döngüsünden çıkıyor.

4.SAYAC  VAR BYTE 79 şeklinde değişken tanımlalarının sonuda bir rakam görürseniz o değişkenin orada yazılı olan hafıza ya yerleştirileceği anlamına gelir. İşlemci hafızasında değişkenler belirli adreslere yerleştirilirler. Bir rakam vermezseniz derleyici kendi kafasına göre değişkenleri hafızaya yerleştirir. Sİz bir rakam verirseniz o rakamın gösterdiği hafızaya yerleşir. Bu yerleştirme işi yanlızca simulasyonda program çalışırken değişkenlerin alacağı değerleri izlemek için kullanılan bir yöntem. Yoksa o genelde derleyicinin kendisinin yerleştirmeyi yapması tercih edilir.

Sorduğun sorulardan iin başında olduğun anlaşılıyor. Bende ders notlarını okumanı örnekleri incelemeni ve yavaş yavaş kendini geliştirmeni önereceğim.

Ete


lgoktengri

Alıntı yapılan: ete - 02 Ekim 2021, 22:42:30Önce soruları cevaplayayım, Button komutu ile ilgli küçük bir açıklama vereyim önce. En sevmediğim Basic komutudur bu. Bir sürü parametresi olan komutları sevmem. Üstelik komut parametreleri ile bilrikte bana çok anlamsız gelir ve hiç bir programımda kullanmadım desem yeridir. Çünki çok basit bir kaç farklı komut ile Buton komutunun yapacağından daha iyi sonuçlar alınabiliyor. İşiniz basit ise yani yanlızca bir tuşa basılıp basılmadığını kontrol edecekeniz bu kadar parametre size fazla gelir. Bu nedenle kullanmadığım bir komutun açıklamasını tam olarak da vermem pek mümkün değil ama yinede tercümeye dayalı bir açıklama vereyim istedim.
1-2. Buton kodu ne anlama geliyor sorusu ile ikinci sorunun cevapları aynı bu nedenle tek cevap vereceğim.  Button pin, down , Delay , Rate ,Bvar , Action , Label
Pin= Butonun bağlı olduğu pin olup senin örneğinde STD ismi verilen pin.Tabiiki illa bir buton yada anahtar olması gerekmiyor. Burada olduğu gibi bir entegrenin çıkış veren bir pini bir sensörün bağlı olduğu bir pin olabilir.
Down= Butona basılınca pinin alacağı lojik değer "1" veya "0"
Delay=0-255 arası değer alıyor. Buna Tuş titreme gecikmesi diyebiliriz. 0 olursa hiç bir gecikme verilmeyecek, 255 verilirse tam tuş titreme gecikmesi veriliyor
Rate= Otomatik tekrar kademesi yada değeri.
Bvar=Byte cinsinden bir değişken ismi. Ne işe yaradığını çok iyi anlamadım maalesef.
Action= Tuşa basıldığında tuş pininin alacağı değeri belirliyor. 1 veya 0 verilebiliyor.
Label= Bir etiket ismi olup eylem yani tuşa basılınca verilen diğer parametrelere uyuyor ise işlem bu etikette sonlanacaktır.

3. IF B3<75 komutu B3 değeri 75 den küçük ise anlamına geliyor. Komuttaki 75 rakamı ise programı yazan kişinin süre konusundaki tercihi. Komut b3 değişkeninin değeri 75 olana dek tuşa basılmasını bekliyor. Her adımda b3 değerini bir artırıyor ve sonunda 75 olduğunda o while-wend döngüsünden çıkıyor.

4.SAYAC  VAR BYTE 79 şeklinde değişken tanımlalarının sonuda bir rakam görürseniz o değişkenin orada yazılı olan hafıza ya yerleştirileceği anlamına gelir. İşlemci hafızasında değişkenler belirli adreslere yerleştirilirler. Bir rakam vermezseniz derleyici kendi kafasına göre değişkenleri hafızaya yerleştirir. Sİz bir rakam verirseniz o rakamın gösterdiği hafızaya yerleşir. Bu yerleştirme işi yanlızca simulasyonda program çalışırken değişkenlerin alacağı değerleri izlemek için kullanılan bir yöntem. Yoksa o genelde derleyicinin kendisinin yerleştirmeyi yapması tercih edilir.

Sorduğun sorulardan iin başında olduğun anlaşılıyor. Bende ders notlarını okumanı örnekleri incelemeni ve yavaş yavaş kendini geliştirmeni önereceğim.

Ete



ete hocam verdiğiniz bilgiler için teşekkür ederim. Button komutunu az çok anladım çok teşekkürler. ETE PİC Derslerine de bakacağım tekrar teşekkür ederim iyi günler dilerim

Powered by EzPortal