PC->PİC->PC->KESME üçlüsü arasındaki iletişim nasıl olamalı

Başlatan forumsad, 10 Temmuz 2011, 19:50:41

forumsad

arkadaşlar pc'den pic'e veri gönderiyorum pic pc'ye cevap gönderiyor
bu arada herhangi bir anda kesme devreye giriyor ve pc'ye veri gönderiyor


bu iletişimde çakışmayı önlemek için sağlam bir yöntem bulmalıyım önerileriniz var mı???

açıklamalar:pc veri gönderir pcden veri bekleyen SerIn devreye girer gelen bilğiyi analiz eder ve gereğini yapar sonra pc'ye SerOut ile cevap gönderir...
        sorun: mesela pic gelen veriyi analiz ederken tekrar pc'den veri gelirse ne olur muhtemelen gelen veri dikkate alınmaz

şimdi diyelimki pic pc'den gelen veriyi beklerken (zaman aşımı yok)  kesme gelirse kesme sonunda pic gene gidip pc'den veri beklemeye dönecek 
dolayısıyla pc'ye veri gönderemeyecek
diyelimki serin komutuna zaman aşımı koyduk pc'den 1 sn veri bekle gelmezse devam et dedik bu döngü esnasında pc'den veri gelince pic veriyi alamıyor

kafam karıştı sizce hangi mantıga göre çalıştırmalıyım

saygılarımla

FEHMİ_ASM

Alıntı Yapbu iletişimde çakışmayı önlemek için sağlam bir yöntem bulmalıyım önerileriniz var mı???
RCSTA ve TXSTA saklayıcılarının bit işlevlerini incelemelisin.

Alıntı Yapsorun: mesela pic gelen veriyi analiz ederken tekrar pc'den veri gelirse ne olur muhtemelen gelen veri dikkate alınmaz
Veri geleceği zaman TRMT biti otomatikman "1" olur. Bu esnada kesme PIC'te (önceden izin verildiği takdirde) donanımsal olarak oluştuğundan veri gelmesini beklemeye gerek yok. PIC başka işlerle meşgul olabilir. TRMT=1 olduğunda Buffer'ı okuyup yedeklemen yeterli.

Alıntı Yapşimdi diyelimki pic pc'den gelen veriyi beklerken (zaman aşımı yok)  kesme gelirse kesme sonunda pic gene gidip pc'den veri beklemeye dönecek 
dolayısıyla pc'ye veri gönderemeyecek
TXSTA/Sync biti Default değeri "0" dır. Ve yazılımında öyle kaldığından emin ol. Bu, çift yönlü veri alışverişini sağlar. Ve TRMT biti sana veri geldiğini daima haber verebildiği için beklemen gereksiz.


forumsad