Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

rs232 problemim

Başlatan koordinat, 11 Şubat 2009, 08:40:57

kostebek

#int_rda  
void serihaberlesme_kesmesi ()
{
disable_interrupts(int_rda);  //int_rda kesmesini pasif yap
output_high(pin_c5);
//delay_ms(500);
gets(klavye);                    //metni al ve "klavye"adlı dizi değişkenine aktar
printf("\n\rYazdiginiz Metin>  %s\n",klavye);//satir atla yeni satir,rs232 üzerinden klavye string yolla satir atla
output_low(pin_c5);
//delay_ms(500);
printf("\n\rKlavyeden bir metin girin ve entera basin>"); 
      enable_interrupts(int_rda);       
}


İşin bittikten sonra. Tekrar kesmeyi aktif etmen gerekiyor sanırım. Ben programımm da öyle yapmışım ;)

koordinat

onu da yaptım enable da ettim yine olmadı.......
ferdem getc(klavye) hata veriyor siz nasıl aştınız bu sorunu anlamadım

koordinat

ferdem ve diğer arkadaşlar protreus simülasyonu sizde çalışıyorsa buraya sıkıştırıp koyabilirmisiniz max232 yi de ekledim yine aynı sorun var klavyeden input alamıyor.


koordinat

çok teşekkür ederim ferdem bey.
bakın aynı kod bende "Stream must be a constant in the valid range" "getc(klavye);"de klavyeyi kastederekten hata veriyor.
şimdi benim derleyicimde mi sorun?yardım lütfen.şaşırdım kaldım
ferdem bey sizin compiler ın versiyonu nedir ve nerden indirebilirim?
(edit:şimdi denedim ferdem beyin yolladığı .hex de hyperterminalde çalışmıyor ama proteus ta çalışıyor)

aliveli

seri porttan çoklu bilgi göndermek için ilk olarak kaç karakter göndereceğini mikrodenetleyiciye bildimen gerekir yoksa sende olduğu gibi mcu sürekli gelecek karakterleri bekler.
Burada bir örneği var seri porttan gelen bilgi lcd ye yazdırılıyor

kostebek

hyper terminalde çalışlmaması çok mantıklı çünkü int rutinine girince int disable edilmemiş. Dolayısıyle siz klavyeden her tuşa bastığınızı yeniden interrupta girecek ve bu böyle devam edip gidecek

aliveli

kesme oluşunca derleyici kendisi iptal etmiyormu zaten interruptları?

ferdem

:!: Bağlantısını verdiğim koda tekrar baktım ve:
getc(klavye);

satırını gördüm, berkay bu satırda hata alman normal çünkü getc fonksiyonu herhangi bir parametre almıyor, ben getc(klavye) ifadesini gets(klavye) gibi gördüğümden farkına varamamışım. Şu anda tekrar derlemeye çalıştım ben de aynı hatayı aldım, bu kod nasıl derlenmiş anlamadım, ilginç (CCS 4.014).
Sonuç olarak getc(klavye) satırını gets(klavye) yaparsanız sorun kalmayacaktır. Terminal programı olarak docklight kullanmanızı öneririm. @aliveli kesme "enable-disable" konularıyla ilgili yazdığım ilk mesaja bakabilirsiniz.

http://picproje.4shared.com/ da Picproje Proteus Dosyaları klasörüne düzeltilmiş halini yükledim,
http://www.4shared.com/file/87771345/4661a351/_2__rs232-virtual_terminal.html
yönetici arkadaşlar ilk dosyayı(rs232-virtual terminal.rar) silerlerse memnun oluruz.

İyi çalışmalar.

kostebek

Ya koordinat arkadaşım yani alınmada önce RS232 ile ilgili bir konu açık onun üstüne input la alakalı konu açman çok ilginç geldi :)

Bence bir kitap almanı tavsiye ederim.

Serdar Çiçek 1 numara ;)

koordinat

ya kitabımın olmadığını nerden çıkardın ki.o kitap bendede var.senin çalışan kodun varsa niye paylaşmıyosun paso en kısa cevapları atıyosun bende onu merak ettim ;)
ben o kitaptan yola çıktım zaten kodlardan anlamış olman gerek ama rs232 konusunu forumdan incelerseniz benim yaşadığım sorunun aynısı rapor edilmiş.ustalardan yardım bekliyorum sadece.

kostebek

Alıntı yapılan: "koordinat"ya kitabımın olmadığını nerden çıkardın ki.o kitap bendede var.senin çalışan kodun varsa niye paylaşmıyosun paso en kısa cevapları atıyosun bende onu merak ettim ;)
ben o kitaptan yola çıktım zaten kodlardan anlamış olman gerek ama rs232 konusunu forumdan incelerseniz benim yaşadığım sorunun aynısı rapor edilmiş.ustalardan yardım bekliyorum sadece.

Ben seninle bir önceki sayfaya bakarsan. Problemin kodda olmadığını başka birşeyde olduğunu söyleyip ayrıca aynı kod için Video göndermeme rağmen hala kodda diye tuturup yine de herkesten kod istiyorsun onlar da gönderiyor sana. Devreni kontrol et terminal ayarlarını kontrol et. Complier ını kontrol et. Simulasyon programını başka bir versiyonla değiştir. Kod çalışıyor diyoruz anlatamıyoruz :)

koordinat

tamam haklısın proteusta çalışıyorda gerçekten bilgisayarla hyperterminal üzerinden haberleşemiyor.evet sorun kodda değil ama galiba ne olduğunu veya nasıl halledebileceğimin yanıtını alamadım belki ondandır bu kadar mesaj..

kostebek

Evet sen de haklısın :) Şöyle ki proteusta da çalışıyorsa. Max232 entegresini tekrar kontrol et. hoş şöyle ki ilk ekran geliyorsa onda problem yok demektir. Ama senin klavyeden gönderdiğin veride problem varsa bunun için de RX ucunu kontrol et. Bunun gibi şeyler. Olmadı Bread board üzerinde uğraşıyorsan sök başka boarda kur. Bunlar gerçekten küçük ama önemli şeyler. Ben mesela sırf bi board yüzünden 1 hafta da yakmıştım ilk Ledi mi pic öğrenirken :)

koordinat

yok kardeş donanımdan en küçük şüphem olsa hemen sökmüştüm devreyi çoktan ama pcb basımlı ex1-b geliştirme boardunda deniyorum ve devrede hata olma ihtimali yok.bi arkadaş gelen verileri pic yakalayamıyo diodu ya hah işte budur dedim ama arkadaşta devamını getirmedi cevabın çünkü şöyle bişi köstebek sürekli basılı tutuyorum hiç kaldırmıyorum klavyedeki harften elimi böyle 6-7 inci seferde falan yakalıo ama yanlış karakterler çıkıyor.