MCU çalışıyormu

Başlatan ahmetbudak, 13 Ekim 2016, 13:47:42

ahmetbudak

Herkese iyi  çalışmalar bir devre üzerindeki mcu nun çalıştığını son kullanıcının kolayca anlayabilmesi için pratik bir yol olarak ne önerirsiniz?  Mesela mcu nun boştaki bir pinine led bağlayıp programda belirli zaman aralıklarıyla bu ledi sürmek veya daha başka?

ByTEK

#1
Ana Döngü ile belli aralıklarla ledi yakıp söndürmek gayet mantıklı. Onun dışında görsel olarak sanırım led bağlamaktan başka pratik çözüm yok. Eğer cihazda lcd veya display gibi birşey varsa bir şekilde efekt verilebilir. yada cihaz ethernet veya başka birşey ile bağlı ise bir yere log gönderilebilir.

muhittin_kaplan


skara1214

Alıntı yapılan: ahmetbudak - 13 Ekim 2016, 13:47:42
Herkese iyi  çalışmalar bir devre üzerindeki mcu nun çalıştığını son kullanıcının kolayca anlayabilmesi için pratik bir yol olarak ne önerirsiniz?  Mesela mcu nun boştaki bir pinine led bağlayıp programda belirli zaman aralıklarıyla bu ledi sürmek veya daha başka?
led işi en iyisi ama ben genelde uart haberleşmesi yaparım zira clockun v.s.de  uygun çalışmalı
Herkes ölür ama herkes gerçekten yaşamaz

fahri-

Ben 1 sn ralıklarla yanıp sönen 1 adet led kullanıyorum bazı devrelerde. Son kullanıcı kilitlenme, arıza vs durumları hızlıca gözlemlemiş oluyor.

muhittin_kaplan

program o led in yanıp söndüğü yerde takılırsa nasıl çözüyorsunuz ?

F493

Selam,

Ana döngüye bir led koyun ledin yanıp sönmesini hızlı yapın.  Böylece led in periyodundan gözle yazılımın bir yerlerde fazla vakit harcadigini da görebilirsiniz. Ama kesinlikle interrupt içine koymayın, cünkü yazilim interrupt icinde çakılıp kalabilir, ama ana döngüye koyarsanız yazılımın çevrim  döndüğüsunu yaptigindan emin olursunuz

Esen kalın.

skara1214

Alıntı yapılan: muhittin_kaplan - 13 Ekim 2016, 16:38:07
program o led in yanıp söndüğü yerde takılırsa nasıl çözüyorsunuz ?
O zaman zaten sıkıntı olduğunu anlıyoruz
Herkes ölür ama herkes gerçekten yaşamaz

fahri-

Alıntı yapılan: muhittin_kaplan - 13 Ekim 2016, 16:38:07
program o led in yanıp söndüğü yerde takılırsa nasıl çözüyorsunuz ?
Hocam arkadaşında da dediği gibi mcu bir şekilde kitlenirse led yanıp sönmüyor ve anlıyorsunuz kitlendiğini. Ve çözümü de sizin dediğiniz gibi Wachdog kurmak.

muhittin_kaplan

led YakSondur(){
   ledOn;
   LedOff;
}

fonksiyon_1{
   YakSondur();
   ....
   ....
}

fonksiyon_2{
   YakSondur();
   ....
   ....
}

fonksiyon_3{
   YakSondur();
   ....
   ....
}

main{
while{
   fonksiyon_1()
   fonksiyon_1()
   fonksiyon_1()
}
}


Ben biraz eksik yazdım sanırım, böyle bir yapıda YakSondur de kalırsa ne yapacaksınız ?

skara1214

hocam ledi   systick timera koyuyorum  yani ana döngünün içinde çalışmıyor. İnterrupta temiz bir şekilde girip ledi yakıp sönüdürünce mantıklı çalıştığını anlıyorum o kadar yoksa dediğiniz gibi fonksiyonların düzgün çalışıp çalışmadığını anlamak için led kaba bir çözüm direk debuga girmek lazım.(debug vs. yapmadığım zamanlarda usarttan takip ederdim her bir fonksiyona girişte 1 sayı yollar onu artırarak devam ederdim böylece nereden geçiyor nerede kalıyor anlıyordum)
Herkes ölür ama herkes gerçekten yaşamaz

mehmet

Ana döngüde yakıp, sıkıntılı fonksiyonlarda sönmesini
sağlamak daha uygun olmaz mı?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

skara1214

Alıntı yapılan: mehmet - 14 Ekim 2016, 12:29:35
Ana döngüde yakıp, sıkıntılı fonksiyonlarda sönmesini
sağlamak daha uygun olmaz mı?
hangisinde söndüğünü nereden anlayacaksınız?
Herkes ölür ama herkes gerçekten yaşamaz

Voltajcı

Alıntı yapılan: skara1214 - 14 Ekim 2016, 14:17:03
hangisinde söndüğünü nereden anlayacaksınız?

RGB led koyarsaız, her döngüyede bir renk verirseniz oradan bir çıakrım olabilir aslında :))

fahri-

Ben led on off yaparken nerede kilitlendiği ile ilgilenmiyorum. Kilitlendiği anda problem olduğunu görüyorum. Yani cihazın mcu nun normal çalışıp çalışmadığını kontrol ediyorum. Mcu çok kitlenirse de oturup devreyi ve programı yeniden ele alıyorum.