ccs rs485.c

Başlatan SpeedyX, 16 Mart 2005, 19:23:10

SpeedyX

ccs ile rs485 veri iletimi yapmak istiyorum.
acaba kendi örneklerindeki rs485.c içindeki kodlar ile bunu gerçekleştirmiş olan varmı?

öğrenmek istediğim, bunları çalıştırmış olan varmı acaba. sorunsuz çalışıyormu?
(önerileriniz olursa lütfen yazınız)

Teşekkürler.

SpeedyX

evet. sanırım cevaplayacak biri yok.
zaten aradaki sürede biraz daha araştırma yaptım.
şimdi öğrenmek istediğim şey şudur
mesela 100 tane terminal olacak aynı hatta bağlı olan.
her terminal pc ye bağlı olan master cihaza veri gönderecek.

mesela 10terminalde aynı anda veri yollamaya kalktığında ne olacak?
void rs485_wait_for_bus(int1 clrwdt)
{
   int16 i;

   RCV_OFF();
   for(i=0; i <= (rs485_wait_time*20); ++i)
   {
      if(!input(RS485_RX_PIN))
         i = 0;
      else
         delay_us(50);

      if(clrwdt)
         restart_wdt();
   }
}

bu kod bunu mu sağlıyor?

yardımcı olursanız sevinirim.

Erol YILMAZ

100 adet slave cihaz mastere bagli olacak ok! ve standart bir protokol kullanilmayacak mi? Bu is icin bence standart bir protokol kullanilmalidir. Boylece tum sorularina cevap ta bulmus olursun. MODBUS ta master slave lerden istekte bulunur ve cevaplarini alir. Fakat sen slave cihazlarin mastere ulasmasini istiyorsun, bunu hangi protokol ile yapabilirsin? biraz arastirman gerekiyor. I2C de "arbitration" diye bir olay vardi. Senin probleminle ilgili olarak. yol onceligi veren vs...

SpeedyX

hocam ben rs485 kullanmak istiyorum.
aslında önce master ile istek gönderip, istediğim id ye sahip slave den de veri alsam olur. ama her iki yöntemi kullanabilmek ise çok daha işime gelir.
yani master istediği zaman almak ve slave cihaza yeni veri geldiğinde hemen onun değerini master a iletmek.
sanıyorum rs485 ile bu yapılıyor ama nasıl?
verdiğim kod un adı wait for bus, yani bu belkide aradığım şey çünkü kodun işleyişine bakarsak ;
hatta "1" verisi, verilen süre boyunca yok ise işlem sonlanıyor.
ek olarak tavsiyelerinizi almak istedim. acaba bu işimi görür mü?
bu iş ile uğraşanlardan fikir almak en iyisi ve burada da en çok kişiye ulaşabileceğim bir imkan var.

Erol YILMAZ

Burası da kedi platformu gibi oldu.

Maşallah senin kedi de baya bi iriymiş  :)

SpeedyX

Konuylada alakası yok ama senin kedide bayağı meraklı bakıyor. :D
benimki kedi değil arslan benzeri bir hayvan ama adını hatırlayamadım.
bilen varsa söylesin.

sertac2003

Alıntı yapılan: "Erol"Burası da kedi platformu gibi oldu.
Maşallah senin kedi de baya bi iriymiş  :)

kediler platformu bu mesaj ile artik tarih olmuştur. benim bomba sizin kedileri gümletecek dikkat edin, fitil yaniyor patlamadan kacisin :D
yoksa ana haber bültenlerine malzeme olacaksiniz :D  :D  belediye yine toplu katliyam yapti diye :lol:  :lol:  :lol:  :lol:
Şirketteki herkes en üst yöneticinin müşterisidir.

sarikayamusa

Sevgili SpeedyX :
100 tanesi aynı anda gonderdiginde karısma olmaması için:

Olay aslında şöyle:

Diyelimki 1Master ve 100 Slave var.Ilk basta slave'ler dinleyici durumunda. Master sırayla adres+data biçiminde hatta gonderiyor,sonra dinleyici durumuna geciyor.
Slave'ler kendine uyan adresi buldugunda kendindeki datayı yine adres+data biçiminde hatta veriyor ve hemen tekrar dinleyici durumuna geciyor.Bunu da Master alıyor ve işliyor.Bu sekilde 100 slave'in datasını karısmadan alabilirsin.Bu arada rs485 protokolu sadece 32 aygıta ve 1,2km ye kadar destekliyor!


Olay bu fakat yazılım da bende problem yasıyorum.ccs deki rs485 ornegi cok karısık geldi bana.Bilen varsa lutfen yardımcı olsun.

serafetin

arkadaslar ben rs485 birkac cihazdan bilgi okuyup gondermek icin bir proje gerceklestirmistim. 2 modul rs485 uzerinden pic ile bilgiyi okuyup elektrik hattina  gonderen modulle birlestityor. sonda baska bir modulde elektrik hattindan gelen bilgiyi alip picle bunu rs232 den pcye veriyordu..

burda pic kullandim cunki arkadaslarinda dedigi gibi adresleme yapmam gerekiyordu. soyleki ana pic uzeriden modullere bilgi yolladigimda bu rs485 agina yollanan bilgi oluyor. sonra 2 alici modulde bu bilgiyi aliyor bilginin formatida su sekilde Averi Bveri seklinde. 1. modul kodun kendine gelip gelmedigini ilk karakterden anliyor. A ise bana geldi diyor bilginin geri kalanini okuyor. değilse yeni karakter bekliyor. 2. modulde ayni sekilde.. rs485  rs232 den farki olarak 3 bacak oluyor rx tx birde tx enable yada rx enable bacagi yada her ikiside oluyor.. birkac cesidi var. ben max485 kullandim bunun enable bacakarini birlestirip onuda pic in bir girisine bagladim.. ayrica

#use rs232(baud=9600, xmit=PIN_A1, rcv=PIN_A0, ENABLE=PIN_A3)
programda bu satiri bilirsiniz..ama fark enable bacagi eklememiz. help te gorebilirsiniz rs485 enable bacagi icin kullanilir diyor..
birde soyle bisi var rs485 cikisina 2 adet 680 ohm biri pull up biri pull down koyuyoruz. max485 dahasheetinde var hangsinin nereye baglanacagi.. birde cikistaki rx tx in arasina 120 ohm bagliyoruz. sonlandirma direnci diye..

baska bir sorunuz olursa memnuniyetle yanitlarim..
(rs485 hakkinda ayrintili bilgi infogate in her yonuyle seri port kitabinda bulabilirsiniz.)
bilgi paylaştıkça büyür.....