avatar_elektro77

SERIN KOMUTUNDA DATA BEKLETME

Başlatan elektro77, 26 Kasım 2016, 21:29:57

elektro77

Alıcı bilgisi geldiğinde program aşağıdaki şartları yerine getirmeye gidiyor.
Bu esnada başka bir bilgi geldiğinde bu bilgiyi nasıl işleme alabiliriz.
Başka bir deyişle şartlar yerine getirilirken gelen bilgiyi ön bir hafıZAda tutup şartlar bittikten sonra o bilgiyi nasıl kullanabiliriz.
Bir nevi eprom kullanıp işlem sırasında gelen yeni datayı sırada bekletmek.
Bu bankacılık sıramatik sisteminde kullanılıyor olmalı. Gişe numarayı çağırdığı anda numara ekranda yanıp sönerken diğer bir gişe ile aynı anda bastığını varsayarsak bu datayı gözardı etmemeli. Bu bekletme yazılım mantığı nedir.
Doğru anlatabildimmi bilmiyorum?







BASLA:
SERIN2 PORTA.0,396,[WAIT("UG"),ALICI]


IF ALICI=0 THEN
LCDOUT $FE,$D4,  "0"
ENDIF
IF ALICI=100 THEN
LCDOUT $FE,$D4,  " "
ENDIF
IF ALICI=1 THEN
LCDOUT $FE,$C0,  "1"
ENDIF
IF ALICI=101 THEN
LCDOUT $FE,$C0,  " "
ENDIF
IF ALICI=2 THEN
LCDOUT $FE,$C2,  "2"
ENDIF
IF ALICI=102 THEN
LCDOUT $FE,$C2,  " "
ENDIF
IF ALICI=3 THEN
LCDOUT $FE,$C4,  "3"
ENDIF
IF ALICI=103 THEN
LCDOUT $FE,$C4,  " "
ENDIF
IF ALICI=4 THEN
LCDOUT $FE,$C6,  "4"
ENDIF
IF ALICI=104 THEN
LCDOUT $FE,$C6,  " "
ENDIF
IF ALICI=5 THEN
LCDOUT $FE,$C8,  "5"
ENDIF
IF ALICI=105 THEN
LCDOUT $FE,$C8,  " "
ENDIF
IF ALICI=6 THEN
LCDOUT $FE,$CA,  "6"
ENDIF
IF ALICI=1106 THEN
LCDOUT $FE,$CA,  " "
ENDIF
IF ALICI=7 THEN
LCDOUT $FE,$CC,  "7"
ENDIF
IF ALICI=107 THEN
LCDOUT $FE,$CC,  " "
ENDIF
IF ALICI=8 THEN
LCDOUT $FE,$CE,  "8"
ENDIF
IF ALICI=108 THEN
LCDOUT $FE,$CE,  " "
ENDIF
IF ALICI=9 THEN
LCDOUT $FE,$D0,  "9"
ENDIF
IF ALICI=109 THEN
LCDOUT $FE,$D0,  " "
ENDIF
IF ALICI=10 THEN
LCDOUT $FE,$D2,  "10"
ENDIF
IF ALICI=110 THEN
LCDOUT $FE,$D2,  " "
ENDIF

GOTO BASLA
END
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

#1
Anlaşılan birden fazla vericisi olan ama tek alıcısı olan bir sistem çalışıyorsun. İstiyorsun ki kim ne gönderirse göndersin alıcı bunları kaçırmasın.  Öyle bir sistem bulursan banada haber ver. Çünki böyle çok fazla akıllı ve becerikli bir sistem olduğunu sanmıyorum. Sesli düşünelim. Serin komutu ile Alıcı bilgi alıyor ve aynı anda birden fazla bilgi gelmiş vaziyette. Her şeyden önce bu bilgi RF yolu veya kablolu ortamdan geliyor olsa bile gelen bilgiler bir birlerini bozar. Veri üstüne veri biner ve formatları bozulur. Bu yüzden sürekli söylüyorum aynı ortamda brden fazla RF vericisi çalışmaz diye. Çalışması için protokol gerekir.
Tekrar Serin komutuna dönersek, diyelimki anlık da olsa iki bilgi geliyor ve birincisi Serin komutu tarafından alınıyor. Peşinde ikincisi geliyor ama işlemcinin bundan haberi yok. Haberi olması imkansız olabilmesi için bilgiyi almaya başlaması gerek. Ne olmalı peki? iki serin komutun olmalı birisi A verisini alırken diğeri B verisini almalı. Bu mantıklımı oda değil çünki işlemcide aynı anda iki işi birden yapamaz. Birinden birini bırakmak zorundadır.  İşlemci iki işi aynı anda yapabilir kesme kullanırsa. Ama iki iş de zamana bağlı bir iş ise ikisinide yapamaz hale gelebilir. Seri bilgi zamana bağlı bir iştir. Zira bir anda gelir ve işlemci o anda almaya hazır ise gelen bilgiyi alır. Serin komutu ile bilgi alırken kesme ile USART dan bilgi almayada kalkarsa ikisinide alamayacaktır. Zira her şeyden önce serin komutu programın kesmeye gitmesini engeller. Bilgi gelinceye kadar programı bekletir ve o esnada USart dan gelen bilgide kaçar gider. Sonuçta iş gelir protokol denilen ayarlama yada organizasyona dayanır. Nedir Protokol? iş ve zaman paylaşımıdır. Yani Birdan fazla abone var ise bunların kendi kafalarına göre sürekli bilgi yollamaları protokol ile engellenir.  Bu işi bir sınıfta 20 talebe olduğunu ve bir öğretmenin bunlardan bilgi aldığına benzetebiliriz. Hepsi bir ağızda konuşursa öğretmen ve talebebelerin hiç birisi bir şey anlamaz. Peki öğretmen ne yapar bu durumda. Önce susun diye bağırır. Sonra kendine göre bir sıra belirler. Birinci öğrenciye sen konuş diğerlerine siz susun der. Birinci öğrenci ne söyleyecek ise söyler yerine oturur. Sonra öğretmen ikinci öğrenciye sen konuş der. Oda söyler ne söyleyecek ise. Bu şekilde 20 öğrenciye sıralı olarak söz hakkı verilir. Böylece hepsinin ne dediğini öğretmen de anlamış olur.
Çoklu haberleşmede tamamen benzer bir işlem yapılır ve buna protokol adı verilir. Öğretmen konumundaki Alıcı MASTER dir. Öğrenciler ise SLAVE dir. Abone dirler.
Şimdi seninde yapman gereken bu olacak. Bu nedenle bütün sistemin ALıcı ve Verici bir arad olan Transceiver ile çalışması gerekir. Çünki her bir birim hem alma hem verme yapacaktır. Başka yolu yok bu işin. Böylece Master sırası ile Slave olanlara söz hakkı verecek ve onlarda verilerini sırası ile alıcıya verecekler ve sonuçta alıcı hiç bir veriyi kaçırmadan verileri almış olacaktır. İşin yolu budur.
Son anda aklıma geldi NRF2104 gibi RF modüller birden fazla buffer ile çalışırlar. Belirli oranda bilginin aynı anda alınması mümkün olabilir bu modüllerde. Ancak onda da sınır vardır bunuda göz ardı etmemek gerekir.

Ete

Powered by EzPortal