PIC C seri iletişim ile ilgili yardım !!

Başlatan yucelll, 16 Nisan 2008, 19:15:07

yucelll

Soktuğun laflar için ve verdiğin site için çok sağol !

Ben C ye yeni geçtim ve sitemde C ile yapılmış bir tek havada kayan yazı var.
Dediğin gibi hazır projeyi geliştirdirdim 2 renk yaptım.
Yani önemli olan bilmemek ayıb değil, sormamak (öğrenmemek) ayıb kardeş.
Gerisinde PIC bile kullanılmadı.
Amacımız bişiler öğrenmek.
Hiç kimse doğuştan C dilini bimez yani !

ferdem

Yücel bey siz çalışmalarınıza devam ediniz, biz takıldığınız yerde yardımcı olmaya çalışırız. Bilgisayar-PIC arasındaki iletişimden önce iki PIC arasında iletişim denemeleri yapmalısınız, buna da önce Proteus ta "simüle" ederek başlamalısınız . Bunu yapmadan bilgisayarla haberleşme uygulaması biraz zor olur. Adım adım gitmek lazım. Bakınız arkadaşımız adım adım gidiyor:
https://www.picproje.org/index.php/topic,20147&highlight=&sid=1e34f0a493fd681af5bbb0395e97996a
İlk adım olarak bu başlığı takip edebilirsiniz. İyi çalışmalar.

yucelll

sağol kardeş baktım biraz ama anlamaya başladım biraz

SpeedyX

Oraya bakmayacaksınız, orada sadece insanların nasıl adım adım ufak parçalar halinde gittiklerini anlayacaksınız.

http://www.viddata.com/libraries.htm
Burada aradığınız hazır kütüphaneler var. Onlara bakıp anlamaya başlamanız gerekiyor, baktığınız yerde #use rs232 diyerek işi bitiriyor derleyici. Sizin çalıştığınız derleyici bunu yapmıyor.

Sizin yapmanız gereken işin mantığını anlamaksa,
eğer haberleşme hızınız 9600 baud ise 1/9600=104us bekleme süresi,
* bir karakter göndermek için;
Start biti gönderilir
104us beklenir
ilk veri biti gönderilir (LSB)
104us beklenir
ikinci veri biti gönderilir
104us beklenir
.
.
Stop biti gönderilir
104us beklenir

* 16F84 4mhz de çalışıyorsa, 1us komut işleme süresi ise
bekle
	movlw	0x22 ;1us
	movwf	d1 ;1us
	decfsz	d1, f	; 34*3us+1
	goto	$-1	;
	return	;2us

gibi bir bekleme rutini yazdıysanız, 1+1+34*3+1+2=107us bekleme yapabilirsiniz, bu hata payı önemli midir önemsiz midir..

* Eğer 8 bit gönderiyorsak (9600-8-N-1), saniyede 9600/8=1200 karakter gönderebiliriz....

* Tabii birde bu işin fiziksel boyutu var, mesela UTP CAT-5 kabloda 30,5cm başına ~17pF hat kapasitesi vardır. 15 metre kablo kullansanız hat kapasitesinden dolayı gönderilen veri bozulur, algılanamaz hale gelir...
....
....
gibi şeyleri anlamaya başlamanız gerekiyor C dilinden önce. Sonra bunları C dili ile zaten yaptırmanın yolunu bulursunuz.

"Hiç kimse doğuştan C dilini bimez" ama bazıları Türk dilini bile bilmiyor.

yucelll

Kardeş yardımın için sağol da benle ne alıp veremediğin var onu anlayamadım ? Söyle bileyim yani.

Arkadaşın verdiği link CCS C zaten.

Zaten konu da dağıldı.Yani sorduğumla, aldığım arasında dağlar kadar fark var.

İsterseniz kapatabilirsiniz bu konuyu böyle olmucak.
Beni hiç bişe yazmamış kabul edin.
Bu arada ben Türklüğümle gurur duyuyorum kardeş herkez de duyar yani
Eywallah !

SpeedyX

Konu kapatmak gibi birşey yok, devam ediniz.

karinca

dostum c diline yeni el attim
bende benzer bir projeyle ugrasiyorum
A ve B ye bastiginda ascii kodu olarak gidiyor
putch(A) diye birsey kullanamazsin onun yerine A nin ascii kodu olan decimal 65 kullanmalisin
ascii kod tablosunu rahatlikla bulabilirsin
birde oyle dene