Son İletiler

#1
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enes - 30 Mart 2025, 02:57:21
@ engınkanat

FREQ   degıskenı word tıpınde tanımlı oldugu halde

 SEROUT2 TX_PIN, 84, [DEC FREQ, 13, 10]

komutuyla pc tarafında  putty de 255 uzerı bı sayı okuyabılıyormusun?
#2
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enginkanat - 29 Mart 2025, 23:28:02
Cevabınız için teşekkür ederim. İyi bayramlar dilerim.
#3
avatar_ete
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen ete - 29 Mart 2025, 18:35:41
Count komutu kullanarak daha yüksek frekansları ölçemezsin.
Mutlaka Timer-1 sayacını kullanman gerekir. En güzeli de Timer-1 sayacını harici girişten saydırma özelliğini kullanarak saydırma yapmaktır.
Sayılan frekansı artırmanın yolu bölücü kullanmaktan geçiyor. Gelen siyali 2 ye bölersen saydığın miktar azalır 65535 yerine bunun yarısını sayarsın ama 2 ile çarpınca gerçek değeri bulursun.
Timer-1 sayacında bölme oranı 1/1-1/8 arasında değiştirilebildiği için teorik olarak 65535x8=524.288Hz yi ölçebilirsin. Çünki saycın 65535 sayacak ama aslında 524288 saydırmış olacaksın. Ekrana verme meselesine gelince büyük değerleri KHz ve daha büyük değerleri ise Mhz cinsinden hesaplayıp vermek en akıllıca yöntem olacaktır.

Ete projelerinde bu mantık ile çalışan bir Frekansmetre yazılımım var aslında.
İncelemende yarar var henüz yapmadın ise.

https://etepic.com/index.php/topic,60.0.html

Bu projede çok daha büyük frekansları ölçebiliyoruz. Uygun harici bölücü entegresi kullanarak 1,2 Ghz E kadar ölçebiliyor program.

harici bölücü olmadan ise yaklaşık 30Mhz e kadar ölçebiliyor idi hatırladığım.

Ete
#4
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enginkanat - 29 Mart 2025, 14:47:11
@ __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
DEFINE OSC 20
INCLUDE "modedefs.bas"
FREQ VAR WORD
BUTON_STATE VAR BIT
I VAR BYTE
TRISA = %00000010
TRISB = %00000010
CMCON = 7
OPTION_REG.7 = 0
BUTON_PIN VAR PORTA.1
FREQ_PIN VAR PORTA.0
RX_PIN VAR PORTB.1
TX_PIN VAR PORTB.2
LED_PIN VAR PORTA.3
LED_PIN = 0
FOR I = 0 TO 3
    LED_PIN = 1
    PAUSE 300
    LED_PIN = 0
    PAUSE 300
NEXT I
MAIN:
       
    IF BUTON_PIN = 0 THEN
        PAUSE 50
        WHILE BUTON_PIN = 0
        WEND
        LED_PIN = 1
       
        COUNT FREQ_PIN, 1000, FREQ
       
        SEROUT2 TX_PIN, 84, [DEC FREQ, 13, 10]
        SEROUT2 TX_PIN, 84, [DEC FREQ, 13, 10]
        PAUSE 500
        LED_PIN = 0
    ENDIF
    PAUSE 100
    GOTO MAIN
END

Sorunu bu programla çözdüm. istediğim frekans aralığında çalışıyor. Sadece öğrenmek için bir şey sormak istiyorum; WORD tipi değişken ile maximum 65532 Hz okuyabiliyoruz. eğer daha yüksek bir değer okumak istersek bir yolu var mı?
#5
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enginkanat - 29 Mart 2025, 12:53:13
Şimdiden güzel bir bayram geçirmenizi temeni, ederim. Erol hocam devre şeması çizmedim. breadboard üzerinden kurdum. butonu pull_up olacak şekilde bağladım. FTD232 usb/TTL ile putty üzerinden okumak için "Frekans" diye göndermeye çalıştım. eğer PC'den bu iletiyi alabilirsem Bluetooth HC-06 ile göndermeye çalışacağım. aslında bu işlemi 12F675 kullanarak yapmak isterdim ama bu işlemciyi bir türlü çalıştıramadım.
#6
avatar_ete
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen ete - 28 Mart 2025, 20:38:17
Doğru parametre verdin ise ve doğru pin kullandın ise haberleşme olması gerek.
Anlamamız için şema ve programı buraya koyman gerekiyor.
Hiç bir şey göndermeyebilir. Kesin emin olmak zor çünki böyle bir şey başıma gelmedi.
USART komutlarını kullanınca o portu (TX ve RX pinlerini) başka amaçla kullanamazsın. RX pini giriş olarak ayarlanmalı.

Yollama komutunda kullandığın DEC parametrelerini kaldırırsan sayının ASCI değerini yollarsın. DEC koyarsan rakam değerini yollarsın. Örnek vereyim. X= 5 olsun  DEC X şeklinde yollarsan 5 rakamını yollarsın. X olarak yollarsan 53 yani 5 rakamının ASCI karşılığını yollamış olursun.
Sonuçta ne olarak yolladığın çok önemli değil karşıdan onu ne şekilde aldığın önemli.
X olarak yollayıp DEC X olarak alamazsın.
Birde bunları nereye yolluyorsun alıcı olan nedir. Bir LCD displaye bilgi yazar gibi yolluyorsun sanki. İşaretçi olarak "FREKANS:"kullanmak da bir kusur gibi duruyor. İşaretçiler baa göre en fazla 3-4 karekter olmalı fazlası sıkıntı çıkartır.

Ete
#7
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enginkanat - 28 Mart 2025, 18:12:45
Alıntı yapılan: ete - 28 Mart 2025, 14:52:19Bu yazılış şekli Frekans değişkeninin 16 bit olması nedeni ile doğru değil.
Doğrusu;
HSEROUT ["FREKANS: ",DEC FREQ.byte1,DEC FREQ.Byte0, 13, 10]
şeklinde olmalıdır.

Ete


hocam, yazdıklarınız doğru. fakat en azından ilk byte'ı göndermesi gerekmiyormu? hiç bir veri akışı olmayışı aklıma takıldı. Birde word tipi FREQ değişkenini string olarak nasıl gönderebilirim? sanki bu işime yarayabilir

#8
avatar_ete
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen ete - 28 Mart 2025, 14:52:19
Alıntı YapHSEROUT ["FREKANS: ",DEC FREQ, 13, 10]
Bu yazılış şekli Frekans değişkeninin 16 bit olması nedeni ile doğru değil.
Doğrusu;
HSEROUT ["FREKANS: ",DEC FREQ.byte1,DEC FREQ.Byte0, 13, 10]
şeklinde olmalıdır.

Ete
#9
A
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen aRci - 28 Mart 2025, 14:26:11
20mhz için
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 129 ' 9600 Baud @ 20MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
#10
E
PIC Basic Dersleri / Ynt: PİC16f628a serial haberle...
Son İleti Gönderen enginkanat - 28 Mart 2025, 14:10:50
16F628a Data sheet'i inceledim ama HSEROUT için yapılacak konfigürasyon ayarlarından hiç bir şey anlamadım. 20 MHz kiristal ve 9600 baud rate hız için ayarlamaları nasıl yapabilirim.

INCLUDE "modedefs.bas"
DEFINE OSC 20
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 129
doğru ayarlarmı?
HSEROUT ["FREKANS: ",DEC FREQ, 13, 10]
FREQ değeri 16 bit olduğuna göre bu kod doğru mu?
Powered by EzPortal