Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

877 ile SeriPort

Başlatan isa_1907, 29 Aralık 2013, 00:02:21

isa_1907

Merhabalar,

Bu konuyu ve birkaç konuyu inceleedim ama aradığım cevabı bulamadım.
https://www.picproje.org/index.php/topic,45043.0.html

Sorum şu, bi devrem var 16f877 ve max232'li.Devrem sorunsuz çalışıyor ama eksik.Eksik olan tarafı ise.Isiste virtual terminal de printf("isa") yazıyorum onu ekran da gösteriyor.Buraya kadar sıkıntı yok.

Benim istediğim şey ise, binary olarak 0000 0001 bilgisini yollamak istiyorum.Bunu hangi komut ile yada nasıl gönderebilirim.Çünkü VisualBasic ile yazılmış bir arayüz var.O arayüz bu binary kodu alıp işlem yapacak.
Yardımcı olursanız sevinirim.

polleme

Seri porttan 0x01 göndermeniz gerek. Derleyiciye göre komutlar değişir, bakılması gerek.

kantirici

kullandığınız dilde printf fonksiyonu seri porta veri basıyorsa printf("%d",0x01); komutu 0x01 verisini seri porta iletecektir. 0x01 yerine bir degişkende kullanabilirsiniz.

kudretuzuner

Merhaba,
Tam kod vermek pek adetim değildir ama bu derleme için ben epeyce uğraş vermiştim.Aslında bilinmeyen bilgiler değil ama konuyu öğrenmekte olan diğer arkadaşlarında zaman harcamalarını istemediğim için vereyim.PIC sigorta ayarlarını yaptıktan sonra 4 mhz kristal ve de 9600 baud rate için bir yazılımdır.PIC'in portA pinlerini çıkışa ayarlayıp led bağlandığı zaman terminalden girilen bilgiyi ledlerde hex olarak görebilirsiniz.(asm kodu olduğu için her yazılıma uyarlanır)
TERMNAL
BSF STATUS,5;ÖNEMLİ KODDDD
MOVLW D'25';    9600 BAUD RATE İÇİN GİRİLEN DEĞER
MOVWF SPBRG
MOVLW B'000100100';   SYNC=0 (4.BİT),BRGH=1 (2.BİT)
MOVWF TXSTA
BANKSEL PORTB
MOVLW B'10010000';SPEN=1 (7.BİT),CREN=1 (4.BİT)
MOVWF RCSTA
LED_GONDER
CALL VERI_AL
MOVWF PORTA
CALL BEKLE
CLRF PORTA                     
CALL BEKLE                       
GOTO LED_GONDER
VERI_AL
BTFSS PIR1,RCIF;  RCIF BAYRAĞI  (1) Mİ?
GOTO VERI_AL
BCF PIR1,RCIF;---ÇOK ÖNEMLİ  KODDDD
MOVF RCREG,W
RETURN
;***********                       
GONDER
MOVWF TXREG
BANKSEL TXSTA
VER_SONU_TEST
BTFSS TXSTA,TRMT
GOTO VER_SONU_TEST
RETURN
;***********
BEKLE
MOVLW H'FF'
MOVWF SAYAC0
DONGU0
MOVLW H'FF'
MOVWF SAYAC1
DONGU1
DECFSZ SAYAC1,F
GOTO DONGU1
DECFSZ SAYAC0,F
GOTO DONGU0
RETURN
;************
Amatör

isa_1907

Alıntı yapılan: kantirici - 29 Aralık 2013, 09:52:58
kullandığınız dilde printf fonksiyonu seri porta veri basıyorsa printf("%d",0x01); komutu 0x01 verisini seri porta iletecektir. 0x01 yerine bir degişkende kullanabilirsiniz.

Mplab da,hitech c dilinde yazıyorum...

printf("%d",0x01) // bunu yazmak ile printf("0x01") bilgisiyle aynı gibi görüyorum farkını göremedim.Yani işe yarar mı denemeden bilemeyiz ama mantıken bakıyorum.Printf ekrana yazdırmak için kullanıyorduk.Benim amacım seriporttan bilgi yollamak?Fikrin için teşekkür ederim author, eger ki başka bi fikrin varsa lütfen paylaş.Çünkü ihtiyacım var.
Alıntı yapılan: kudretuzuner - 29 Aralık 2013, 12:24:33
Merhaba,
Tam kod vermek pek adetim değildir ama bu derleme için ben epeyce uğraş vermiştim.Aslında bilinmeyen bilgiler değil ama konuyu öğrenmekte olan diğer arkadaşlarında zaman harcamalarını istemediğim için vereyim.PIC sigorta ayarlarını yaptıktan sonra 4 mhz kristal ve de 9600 baud rate için bir yazılımdır.PIC'in portA pinlerini çıkışa ayarlayıp led bağlandığı zaman terminalden girilen bilgiyi ledlerde hex olarak görebilirsiniz.(asm kodu olduğu için her yazılıma uyarlanır)
TERMNAL
BSF STATUS,5;ÖNEMLİ KODDDD
MOVLW D'25';    9600 BAUD RATE İÇİN GİRİLEN DEĞER
MOVWF SPBRG
MOVLW B'000100100';   SYNC=0 (4.BİT),BRGH=1 (2.BİT)
MOVWF TXSTA
BANKSEL PORTB
MOVLW B'10010000';SPEN=1 (7.BİT),CREN=1 (4.BİT)
MOVWF RCSTA
LED_GONDER
CALL VERI_AL
MOVWF PORTA
CALL BEKLE
CLRF PORTA                     
CALL BEKLE                       
GOTO LED_GONDER
VERI_AL
BTFSS PIR1,RCIF;  RCIF BAYRAĞI  (1) Mİ?
GOTO VERI_AL
BCF PIR1,RCIF;---ÇOK ÖNEMLİ  KODDDD
MOVF RCREG,W
RETURN
;***********                       
GONDER
MOVWF TXREG
BANKSEL TXSTA
VER_SONU_TEST
BTFSS TXSTA,TRMT
GOTO VER_SONU_TEST
RETURN
;***********
BEKLE
MOVLW H'FF'
MOVWF SAYAC0
DONGU0
MOVLW H'FF'
MOVWF SAYAC1
DONGU1
DECFSZ SAYAC1,F
GOTO DONGU1
DECFSZ SAYAC0,F
GOTO DONGU0
RETURN
;************

Kudretuzuner, çok teşekkür ederim.Asm ile yazıldıgından tam oturtamadım kafamda, hitech C ile yazıyorum.TXSTA,TXREG vb registerların kullanımındn kafamda bişeyler oluştu ama tam bir yetkinlik kazanamadı.C dilinde örnekle açıklama yapabilme durumunuz var mı?

kudretuzuner

#5
Merhaba,
hitech C bilmiyorum ama,kodun tamamını "hitech C" içinde asm'ye geçip de yazarsanız geçerli olması lazım bildiğiniz gibi asm PİC'in ana dilidir.Aşağıdaki linkteki bilgiler size yardımcı olacaktır.Kolay gelsin.
https://www.dropbox.com/s/9mfbutgsh2y2e4p/ETekno_pc_pic_on_off.rar?m=
Amatör

isa_1907

Alıntı yapılan: kudretuzuner - 29 Aralık 2013, 14:15:38
Merhaba,
hitech C bilmiyorum ama,kodun tamamını "hitech C" içinde asm'ye geçip de yazarsanız geçerli olması lazım bildiğiniz gibi asm PİC'in ana dilidir.Aşağıdaki linkteki bilgiler size yardımcı olacaktır.Kolay gelsin.
https://www.dropbox.com/s/9mfbutgsh2y2e4p/ETekno_pc_pic_on_off.rar?m=

Teşekür ederim Kudret bey, inceledim ve gayet memnun kaldım güzel bir uygulama olmuş. Bu işlem benim şuanda yapmış olduğum projenin ikinci aşamasında işime yarayacaktır.PC den pici kontrol etme aşamasında şimdilik benim ihitiyacımı görecek kısım ise, PIC ten pc ye bilgi yollamaktır.