has_artvin_li ( TA3TCM )
Usta Üye
- Katılım
- 18 Ocak 2008
- Mesajlar
- 1,088
- Puanları
- 156
- Yaş
- 40
Selamun aleyküm ben bu devreyi ve yazılımı sormaktan ziyade biraz daha profosyönel bişey sormak istiyorum...
Fakat belirtmek istediğim şeylerden sonra sormak daha faydalı olacağı kanısındayım.Öncelikle ben bu tür bir devreyi proje ödevimde yapmış çalıştırmıştım ama yazılımı picbasic ile yapmıştım serout ve serin komutu ile çalışmıştık ve orjinal udeanın ürünlerini kullanmıştım ve yazılımı şu şekilde yapmıştım vericide pic12F675 alıcıda ise pic16F628 kullanmıştım.
Verici Yazılımı:
INCLUDE "modedefs.bas"
CMCON=7
ANSEL=0
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
SIFRE1=1
SIFRE2=9
SIFRE3=8
SIFRE4=4
INPUT GPIO.2
INPUT GPIO.1
AC VAR GPIO.2
KAPA VAR GPIO.1
OUTPUT GPIO.4
LOW GPIO.4
GON VAR BYTE
GON=0
BASLA:
IF AC=1 THEN
GON=10
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
IF KAPA=1 THEN
GON=20
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
GOTO BASLA
END
Alıcı yazılımı:
INCLUDE "modedefs.bas"
CMCON=7
INPUT PORTB.1
OUTPUT PORTA.0
OUTPUT PORTB.2
OUTPUT PORTB.3
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
OKU VAR BYTE
TEKRAR VAR WORD
SIFRE1=0
SIFRE2=0
SIFRE3=0
SIFRE4=0
OKU=0
LOW PORTB.0
BASLA:
SERIN PORTB.1,N2400,["1984"],OKU,SIFRE1,SIFRE2,SIFRE3,SIFRE4
IF SIFRE1=1 AND SIFRE2=9 AND SIFRE3=8 AND SIFRE4=4 THEN
GOTO ATLA
ELSE
LOW OKU
GOTO BASLA
ENDIF
ATLA:
IF OKU=10 THEN
HIGH PORTB.2
PAUSE 25000
HIGH PORTB.3
ENDIF
IF OKU=20 THEN
LOW PORTB.2
LOW PORTB.3
ENDIF
GOTO BASLA
END
_____________________________________________
Şimdi sorum şu.Bu alıcı ve vericileri birbirleri ile tanıştırmak için bir kitapta okuduğuma göre gerekli datayı en az 4 bytelik bir veri bloğu ile yollamak gerekiyormuş böyle bir konu varmı ?
Udeanın ürünlerinde çalışan yazılım farklı ürünlerde çalışmıyor sebebi sizce ne olabilir ?
Bu ürünleri çalıştırmak için temel mantık Asenkron seri iletişim mantığıdır ve 2400 baud rate de veri aktarımı en uygun olduğu udeanın dökümanlarında var fakat bu ürünleri yukarıdaki yazılımla çalıştırdığım taktirde aynı uyumluluğa sahip olmayan proton basic ile deniyorum kodlar hemen hemen aynı olmasına rağmen parametreler birbirlerini tutmuyor ve program çalışmıyor
Yukarıdaki verdiğim yazılımdan da anlaşılan şifreleme sistemini pic basic ile istediğim gibi değiştiriyorum ve sorunsuz çalışan sistemde şifrelemenin mantığını bulamıyorum bu kodları hazır almıştım üzerinde değişiklik yapıp çalıştırmıştım
Ama asıl soru şu bu rf ile dataları asenkron seri iletişimde yollarken ana mantık nedir o sözünü ettiğim kitaptaki data yollama şekli ile alakası varmıdır yani en az 4 byte data ile birliktemi yollanması lazım karşıdan düzgün ve kararlı alınması için
Çoğu sitede gördüğümüz $ff AA gibi datalara burada hiç gerek kalmamıştı.Direk dataları yollayıp almıştık çözmüştük şu işe bir el atıp temel mantığını şöyle anlaşılır bir şekilde anlatırsanız çok memnun olurum... teşekkürlerimle.
Fakat belirtmek istediğim şeylerden sonra sormak daha faydalı olacağı kanısındayım.Öncelikle ben bu tür bir devreyi proje ödevimde yapmış çalıştırmıştım ama yazılımı picbasic ile yapmıştım serout ve serin komutu ile çalışmıştık ve orjinal udeanın ürünlerini kullanmıştım ve yazılımı şu şekilde yapmıştım vericide pic12F675 alıcıda ise pic16F628 kullanmıştım.
Verici Yazılımı:
INCLUDE "modedefs.bas"
CMCON=7
ANSEL=0
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
SIFRE1=1
SIFRE2=9
SIFRE3=8
SIFRE4=4
INPUT GPIO.2
INPUT GPIO.1
AC VAR GPIO.2
KAPA VAR GPIO.1
OUTPUT GPIO.4
LOW GPIO.4
GON VAR BYTE
GON=0
BASLA:
IF AC=1 THEN
GON=10
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
IF KAPA=1 THEN
GON=20
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
GOTO BASLA
END
Alıcı yazılımı:
INCLUDE "modedefs.bas"
CMCON=7
INPUT PORTB.1
OUTPUT PORTA.0
OUTPUT PORTB.2
OUTPUT PORTB.3
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
OKU VAR BYTE
TEKRAR VAR WORD
SIFRE1=0
SIFRE2=0
SIFRE3=0
SIFRE4=0
OKU=0
LOW PORTB.0
BASLA:
SERIN PORTB.1,N2400,["1984"],OKU,SIFRE1,SIFRE2,SIFRE3,SIFRE4
IF SIFRE1=1 AND SIFRE2=9 AND SIFRE3=8 AND SIFRE4=4 THEN
GOTO ATLA
ELSE
LOW OKU
GOTO BASLA
ENDIF
ATLA:
IF OKU=10 THEN
HIGH PORTB.2
PAUSE 25000
HIGH PORTB.3
ENDIF
IF OKU=20 THEN
LOW PORTB.2
LOW PORTB.3
ENDIF
GOTO BASLA
END
_____________________________________________
Şimdi sorum şu.Bu alıcı ve vericileri birbirleri ile tanıştırmak için bir kitapta okuduğuma göre gerekli datayı en az 4 bytelik bir veri bloğu ile yollamak gerekiyormuş böyle bir konu varmı ?
Udeanın ürünlerinde çalışan yazılım farklı ürünlerde çalışmıyor sebebi sizce ne olabilir ?
Bu ürünleri çalıştırmak için temel mantık Asenkron seri iletişim mantığıdır ve 2400 baud rate de veri aktarımı en uygun olduğu udeanın dökümanlarında var fakat bu ürünleri yukarıdaki yazılımla çalıştırdığım taktirde aynı uyumluluğa sahip olmayan proton basic ile deniyorum kodlar hemen hemen aynı olmasına rağmen parametreler birbirlerini tutmuyor ve program çalışmıyor
Yukarıdaki verdiğim yazılımdan da anlaşılan şifreleme sistemini pic basic ile istediğim gibi değiştiriyorum ve sorunsuz çalışan sistemde şifrelemenin mantığını bulamıyorum bu kodları hazır almıştım üzerinde değişiklik yapıp çalıştırmıştım
Ama asıl soru şu bu rf ile dataları asenkron seri iletişimde yollarken ana mantık nedir o sözünü ettiğim kitaptaki data yollama şekli ile alakası varmıdır yani en az 4 byte data ile birliktemi yollanması lazım karşıdan düzgün ve kararlı alınması için
Çoğu sitede gördüğümüz $ff AA gibi datalara burada hiç gerek kalmamıştı.Direk dataları yollayıp almıştık çözmüştük şu işe bir el atıp temel mantığını şöyle anlaşılır bir şekilde anlatırsanız çok memnun olurum... teşekkürlerimle.