folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Picos + Pic18 İle Seri Porttan İletişim



Picos + Pic18 İle Seri Porttan İletişim

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Sayın Müridler

    Başlıkta yazdığım gibi picOS18 kullanarak pic18 ile  seri porttan iletişim yapmaya çalışıyorum. Herhangi bir handshaking veya başka protokol yok. Bilgisayar asenkron şekilde random sürelerde komut gönderiyor. Pic de 50ms 'de bir bilgisayara komut gönderiyor.

    Receive ve Transmit için iki farklı task oluşturdum. Kendi başlarına çalışıyorlar fakat ikisini aynı anda çalıştırdığımda ya OERR oluyor ya da gelenler saçmalamaya başlıyor. Nasıl senkronize edebilirim. Receive taskı receive interruptı olunca set edilen event ile çalışıyor. Transmit taskı 50 ms'lik alarm ile.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    böyle hatayı çözemezsin hocam, yapılmış örnekleri incele..

    bak burda güzel bir örnek var 

    http://mrkrabs.googlecode.com/svn-history/r25/trunk/Source/mrKrabs/taskDrvRS.c

     

    bir de bi kitap vardı ingilizcesi scribd e var, piyasada hep rusçası var o da güzel anlatıyor.. 

    biraz uğraştırdı ama scribd den indirdim upload ettim. 8. başlıkta using drivers kısmına bak, orada seri iletişimi anlatıyor. interrupt ve eventleri ile iligili de bilgiler mevcut

    https://app.box.com/s/0qphc6ke0c5o9kij7ufl 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Hocam burada tek bir task bütün işi hallediyor. Benim iki taskım var biri alıyor biri veriyor bilgiyi. Ama anladığım kadarıyla ikisi aynı anda gönderip almaya çalışırsa patlıyor.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    hocam bu denetleyicilerde aynı anda tek işlem yapılıyor, önceliği belirtmek için de zaten kesmeler kullanılıyor. eğer veri gelirse seri porttan ilgili kesme çalışıp diğer işler durdurulup ona bakılır ve ondan sonra kalan iş yapılır. gerçi picOS ile ilgili bir tecrübem v.s. yok genel olarak bahsediyorum.

    multicore programlamada shared nesne için peterson lock algoritmasında flaglar var. bu yapıyı burada kullanabilirsin.. mesela gönderim işlemi yapılırken bayrak kaldırılır, o an gelen bilginin eventini bir döngüyle durdurursun, gönderme işlemi tamamladıktan sonra bayrak indirilir, sonrasında o döngü event de devam eder. 

    gerçi kullandığın tek çekirdek olduğu için bu geçerli olmayabilir de yine de denemek istersen bakarsın.. 

     

     

    senin dediğin şeyden yola çıkarsak tx in interrupt u ile rx in interrupt u çakışıyor. ama bunlar arasında bir üstlünlük olması gerekiyor yani çok istisnai durumlarda böyle kaynaklar çakışabilir.. hata içeriği yok mu oerr de bir log mesaj falan?

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
Toplam Hit: 964 Toplam Mesaj: 4