Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

usb_interrupt_proc()

Başlatan robomaster, 21 Şubat 2014, 23:14:54

robomaster

Alıntı yapılan: LukeSkywalker - 22 Şubat 2014, 01:27:59
Hid_Write ile veri gönderiyorsunuz polling ile değil.

Evet tekrar inceledim doğru söylüyorsunuz. Usb_interrupt_proc ve Usb_polling_proc  usb  event leri için sadece. Usb iletişimini olması gerektiği gibi tutuyorlar.

Ramiz

Yavas gel sami.. naptin sen boyle..

Projemi paylasamam. Cunki ticari bir proje.

Performanstan caliyor demek. Usb interrupt kullaninca, mcu surekli interrupt a girdiginden, mcu nun baska kodlari islemesine cok az vakit kaliyor demek.

Neden bu kadar kizdin yahu gece gece?
Electrical & Electronics Engineering -> Step one

LukeSkywalker

#32
Alıntı yapılan: robomaster - 22 Şubat 2014, 01:33:19
Evet tekrar inceledim doğru söylüyorsunuz. Usb_interrupt_proc ve Usb_polling_proc  usb  event leri için sadece. Usb iletişimini olması gerektiği gibi tutuyorlar.

Siz yine de 100us'de bir çağırın polling proc...

@984sami
Bütün donanımları olduğu gibi USB donanımını da mikroC ile tam olarak kullanabilirsiniz...
Yapamayan arkadaşlar beceremiyorlardır...
Kimsenin zorla bu kütüphaneyi kullanacaksın diye kafamıza silah dayadığı yok.  İstemiyorsak yazarız  kendi kütüphanenemizi onu kullanırız..

robomaster

@984 sami

illa usb cihazların hepsi usb portundan beslenmem zorunda mı?
Biraz açabilirmisiniz

984sami

Alıntı yapılan: Ramiz - 22 Şubat 2014, 01:34:17
Yavas gel sami.. naptin sen boyle..

Projemi paylasamam. Cunki ticari bir proje.

Performanstan caliyor demek. Usb interrupt kullaninca, mcu surekli interrupt a girdiginden, mcu nun baska kodlari islemesine cok az vakit kaliyor demek.

Neden bu kadar kizdin yahu gece gece?

Bilgi olmadan fikir beyan edilmesine kızdım. Bir kesme olduysa elbette MCU çalışmasını kesme rutinine yönlendirecek, başka bir şey yapıyorsa saçmalıyordur ! USB kesme meydana geldiyse hatta iletişim vardır ki o kesme meydana gelsin, siz o iletişimi değerlendirmeyecekseniz niçin kullanacaksınız ?

robomaster

@984sami

Eminim bilginiz var. Ama pek istifad edmiyoruz ifadeleriniz hedef odaklı değil. Düşüncelerinizi yalın ifadelerle aktarın ki faydalanalım.

Şunu sormuştum size: Tüm Usb cihazlar usb portundan beslenmek zorunda mı?

Ramiz

Dogruyu soyle. Yengeye kizdin, hincini forumdan cikartiyorsun :)

Samicim(ya agabeysin, yada kardessin bilemiyorum) burada herkes fikirlerini, deneyimlerini vede bilgilerini paylasiyor. Yanlis bilgidim, yada bilmedigim cok sey olabilir. Her insanin bilmedigi seyler vardir. fakat bunu bagirip, cagirarak, kizarak bir sonuca ulastiramazsin..

Sami biliyormusun bu gun hayatimdaki en onemli kisi ile sevginin gucunu konustuk.
Bence su hayat kibirlenmek, ofkelenmek, kizmak, intikam almak, insanlari yanlis anlamak vb seyler yapmak icin cok kisa..

İyi calismalar sami.
Ramiz
Electrical & Electronics Engineering -> Step one

984sami

Alıntı yapılan: robomaster - 22 Şubat 2014, 01:37:55
@984 sami

illa usb cihazların hepsi usb portundan beslenmem zorunda mı?
Biraz açabilirmisiniz

Elbetteki değil, ancak PC donanımı aygıtı supend moduna girmeye zorlarken bundan kurtulmak için sürekli kod çalıştırmak mantıksız ve gereksiz. Host, USB veri yolundaki tüm aygıtlara belli bir zaman çerçevesinde iletişim hakkı tanır ve tanınan bu zaman iletişim yöntemine göre (kesme,bulk vs.) belirlenir. Bunun üzerinde boş yere hatta kalmaya çalışmak doğru değildir. Fare örneğini ele alırsak, olduğu yerde 3ms durdu, durumu=suspend. Hareket algılandı; PC ye resume sinyali gönderir, PC iletişimi başlatır, datayı okur ve imleci yeni bilgiye göre konumlandırır. Fare durduğu yerde hatta kalmaya çalışmaz. Başka bir örnek ise ses/video datası; iletişim her 1ms de bir kurulur (istisnaları vardır) ve veri aktarılır, geri kalan zaman hatta hiç bir aygıt yoksa boş geçer, takip eden her ms PC yeni bir çerçeve başlangıcı göndererek iletişimi yeniden başlatır.

t2

#38
Alıntı YapUSB aygıtları için hattın 3ms boş kalması durumunda suspend pozisyonuna geçmeleri bir kuraldır.
Boş bırakmazsın ozaman sürekli gönderirsin. akım kesilmez . mcu çalışır  1ms aralıklar ile veri gönderir. .Aslında suspend modu fiiilen desteklenmemiş olur.  Bunun zararı olur mu?

robomaster

Alıntı yapılan: t2 - 22 Şubat 2014, 01:50:53
Boş bırakmazsın ozaman sürekli gönderirsin. akım kesilmez . mcu çalışır  1ms aralıklar ile veri gönderir. .Aslında suspend modu fiiilen desteklenmemiş olur. şapka kanunu gibi:)

Şartmı bu mode yahu. Olmasa ne zararı var.  Sorun çekilen akımmı yoksa başka bir şey mi asış cevap verilmesi gereken husus o !

t2

akımı usbden alacaksak şart gibi görünüyor. yoksa 3ms sonra işlemciye akım kalmazmış. 

984sami

Alıntı yapılan: robomaster - 22 Şubat 2014, 01:45:48
Eminim bilginiz var. Ama pek istifad edmiyoruz ifadeleriniz hedef odaklı değil. Düşüncelerinizi yalın ifadelerle aktarın ki faydalanalım.




Neresinden başlayayım ?

Sadece enumeration prosedürünün olduğu kütüphanem, assembly kodlama, satır sayısının kaçta bittiğine bakarsanız burada anlatılıp izah edilebilecek bir şey olmadığını anlayabilirsiniz.

Alıntı yapılan: t2 - 22 Şubat 2014, 01:50:53
Boş bırakmazsın ozaman sürekli gönderirsin. akım kesilmez . mcu çalışır  1ms aralıklar ile veri gönderir. .Aslında suspend modu fiiilen desteklenmemiş olur.  Bunun zararı olur mu?

Nasıl boş bırakmayacaksın ? Birinci kural; iletişimi host yönetir, aygıt buna uyar. İkincisi 3 ms boş kaldıysan zorunlu olarak suspend moduna geçmek zorundasın ve üçüncüsü pc nin iletişim kurmasını istiyorsan en az 5 ms hat boş kaldıysa resume sinyali göndereceksin. 8 ms elini kolunu kıpırdatmazsın.

Yukarıda yazdığım gibi kesme transfer kullanacaksınız, pc yazılımınız iletişimi başlattığında aygıt uyumayacak (süreyi kısa tutarsanız), pc yazılımınız uç noktayı kapatıp, iletişimi durdurduğunda suspend moduna geçecek.

robomaster

Alıntı yapılan: t2 - 22 Şubat 2014, 01:56:17
akımı usbden alacaksak şart gibi görünüyor. yoksa 3ms sonra işlemciye akım kalmazmış.

Bence sadece o değil başka bir detay olsa gerek. Dışarıdan beslemede suspend moduna girince veri aktarımı devam eder gibi gelmiyor bana. Muallak durum var burada?

984sami

#43
Alıntı yapılan: Ramiz - 22 Şubat 2014, 01:46:59
Dogruyu soyle. Yengeye kizdin, hincini forumdan cikartiyorsun :)

Samicim(ya agabeysin, yada kardessin bilemiyorum) burada herkes fikirlerini, deneyimlerini vede bilgilerini paylasiyor. Yanlis bilgidim, yada bilmedigim cok sey olabilir. Her insanin bilmedigi seyler vardir. fakat bunu bagirip, cagirarak, kizarak bir sonuca ulastiramazsin..

Sami biliyormusun bu gun hayatimdaki en onemli kisi ile sevginin gucunu konustuk.
Bence su hayat kibirlenmek, ofkelenmek, kizmak, intikam almak, insanlari yanlis anlamak vb seyler yapmak icin cok kisa..

İyi calismalar sami.
Ramiz

Genel sohbette sevginin gücünü konuşabilirsiniz ama teknik konularla bunun ne alakası var ? Bu tip yabancı forumlarda abilik, kardeşlik gibi kavramlar yoktur, konular tekniktir. Geçen bir arkadaşa tavsiye ettim, sizde bakınız www.codeproject.com tek bir yanlış bulamazsınız, bilgisi olmayan bir şey yazmaz, olurda biri yanlış bir makale yazdıysa uyarıyla yanlış olan yeri düzeltir, uyarıyı yapanın 10 veya 70 yaşında olması bir şey değiştirmez. Forumu ilk bulduğumda gerçekten sevinmiştim ama bu dahil bir kaç konu sonrası düşüncelerim değişti.

mesaj birleştirme:: 22 Şubat 2014, 02:05:15

Alıntı yapılan: LukeSkywalker - 22 Şubat 2014, 01:37:44
Siz yine de 100us'de bir çağırın polling proc...

@984sami
Bütün donanımları olduğu gibi USB donanımını da mikroC ile tam olarak kullanabilirsiniz...
Yapamayan arkadaşlar beceremiyorlardır...
Kimsenin zorla bu kütüphaneyi kullanacaksın diye kafamıza silah dayadığı yok.  İstemiyorsak yazarız  kendi kütüphanenemizi onu kullanırız..

Önce yazdığım gibi MikroC kullanmadım, eğer böyle bir imkan varsa kesinlikle kendi kodunuzu yazmanızı tavsiye ederim. Çünkü yazılımın donanımı kısıtlaması mantık dışıdır.

robomaster

Alıntı yapılan: 984sami - 22 Şubat 2014, 01:57:51



Neresinden başlayayım ?

Sadece enumeration prosedürünün olduğu kütüphanem, assembly kodlama, satır sayısının kaçta bittiğine bakarsanız burada anlatılıp izah edilebilecek bir şey olmadığını anlayabilirsiniz.

Nasıl boş bırakmayacaksın ? Birinci kural; iletişimi host yönetir, aygıt buna uyar. İkincisi 3 ms boş kaldıysan zorunlu olarak suspend moduna geçmek zorundasın ve üçüncüsü pc nin iletişim kurmasını istiyorsan en az 5 ms hat boş kaldıysa resume sinyali göndereceksin. 8 ms elini kolunu kıpırdatmazsın.

Yukarıda yazdığım gibi kesme transfer kullanacaksınız, pc yazılımınız iletişimi başlattığında aygıt uyumayacak (süreyi kısa tutarsanız), pc yazılımınız uç noktayı kapatıp, iletişimi durdurduğunda suspend moduna geçecek.

Güzel arkadaşım yardımcı olmaya çalışıyorsun, çevre kirliliğimi oluşturmaya ben anlamadım. Yine de teşekkür ediyorum. Yani sizi tam olarak anlıyamadım kusura bakmayın. Katkısı olan herkese teşekkürler.