RTOS'u kullanmali mi?

Başlatan Yuunus, 09 Aralık 2012, 22:30:53

Yuunus

Merhaba, bir projemde zaman hayati önem taşıyor, örneğin GPIOC' ye bağlı birkaç led'i 500ns aralıkla yakıp söndürmem gerekiyor diyelim bu durumda stm32f407 bu zamanı hiç sarkıtmadan bu işlemi yapabilir mi?  Chip'in manuelini inceledim portların hızı bu hıza müsait gözüküyor, ne varki hala Ledin birinde sabit bir 30ns lik sarkma oluyor.Bu iş task oluşturarak halledilebilir mi? Bir denemede Rtos ile yapacağım ama rtos'un configürasyonuna baktım bu hız'a zin vermeyecek gibi gözüküyor.

Bir de aşağıdaki OS_TICK tam olarak ne işe yarıyor tasklar arası geçiş süresi mi?

//   <o>Timer tick value [us] <1-1000000>
//    Set the timer tick value for selected timer.
//    Default: 10000  (10ms)
#ifndef OS_TICK
#define OS_TICK    2
#endif
>

z

RTOS bu işler için değil. Bahsettiğin zamanlamayı klasik yöntemlerle yazılımsal yapmaya kalktığında da sorun yaşarsın. En iyisi sorunu donanımsal çözmek.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yuunus

"Z" hocam kodları ASM ile yazsam birşey değişir mi? Bir de bu os_tick nedir acaba, ne işe yarıyor.Teşekkürler.

pisayisi

#3
Gecikmene uygun çözünürlük verecek kararlı bir harici osilatörü stm32f4 ün timer aracılığı ile saydırıp gerekli gecikmeyi daha hassas sağlayabilrsin.İşlemci kaç cycle harcadı aman yine kayma oldu gibi dertler ortadan kalkar. İşlemin kararlığı bütünü ile harici osilatöre bağlanmış olur...

mesaj birleştirme:: 10 Aralık 2012, 00:00:44

Alıntı yapılan: digiman - 09 Aralık 2012, 23:50:51
"Z" hocam kodları ASM ile yazsam birşey değişir mi? Bir de bu os_tick nedir acaba, ne işe yarıyor.Teşekkürler.

Ostick, RTOs da temel olarak kullanılan clock tick kesmesidir. stm32 lerde systick aracılığı ile bu kesme sağlanır.Bu birimden bahsettiğin hassasiyette gecikmeler zaten elde edilmez. Ancak assembler ile cpu cycle üzerinden gecikme değerlerini kestirebileceğinden daha hassas değerler yakalayabilirsin. Firmware tabanlı kodlar yazıyorsan bu da işleri çook karıştırıyor olabilir,  firmware içermeyen kodlar bu tip hassas zaman uygulamaları için daha çok tercih edilmeli...
Murat

Yuunus

"Pisayisi" söylediğin mantıklı geliyor fakat kendi içerisinde dahi bu hıza erişemezken harici bir osilatör kullanıp bunu algılayıp çıkışı nasıl sürer işin aslı pek kestiremiyorum. kaymanın sebebi eğer saydırma ise haklısın çözüm mantıklı, yok eğer port'a yazarken kayma oluşuyorsa "Z" nin dediği gibi donanımsal çözüme gitmek kaçınılmaz sanırım. Cevaplar için sağolun.