Ana içeriğe git
Son İletiler
21
Genel Sohbet / Ynt: YAMYAMLARIN SOHBET BÖLGESİ III
Son İleti gönderen Mr_YAMYAM -
Güvenlik sistemlerindeki önemli unsurlar.
1 Mekan içerisinde ses kaydı gereklidir.
2 Uzun süreli kayıt desteği. Doğrudan kendi harddiskine. Harici diskler depolama amaçlıolup kayıtların saklanabilmesi içindir.
3 Yüksek FPS hızları gerekli değildir. 5 ila 10FPS 1080P kayıt her şekilde yeterlidir. Ancak gerçek anlamda 1080P için kamera lensi önem arzeder.
4 Mümkünse hareket sensorü ile kayda girebilen sistemler önemlidir. 24 saat boyunca boş mekanı çekmenin anlamı olmaz.
5 Bu gibi kameralarda yeterli detay elde edilebilmesi ortam ışığına bağlıdır. Güneşe karşı veya back-light aydınlatmalarda detay elde edilemez.
Tercihler için bu unsurları ele almalısın.
22
Genel Sohbet / Ynt: YAMYAMLARIN SOHBET BÖLGESİ III
Son İleti gönderen ozgurece -
CENOVA CN-3421AHD 2MP AHD IR BULLET KAMERA
Görüntü Sensör    1/2.9" AHD CMOS Sensör
Çözünürlük           1920x1080 2MP
Lens Desteği        Sabit 3.6mm
IR Led - IR Cut      18 SMD Led / 30 metre - Otomatik
Standartlar           AHD
Çalışma Voltajı     DC 12V / 1A
25
Genel Sohbet / Ynt: YAMYAMLARIN SOHBET BÖLGESİ III
Son İleti gönderen Mr_YAMYAM -
İş görür gibi görünüyor.
Ama söylemiş olduğum üzere bu tür cihazlarla ilgili araştırmam yok.
8 kanal bir ev için fazla. Önemli olan her kanaldan ses kaydı da yapabilmesidir.
27
Mikrodenetleyiciler / Ynt: Pickit4 Programlayıcı kullanan var mı ?
Son İleti gönderen Furkan41 -
Abi Debug dediğim registerleri ve o anki değişken değerlerinin ne olduğunu görmek için kodu satır satır hareket ettirip. nerde yazılımsal hata olduğunu bulmak için. ikimiz aynı şeyimi söylüyoruz acaba ? çünkü benim yazdığım yazılımın hafızanın başka bir adresinde bir işlem yapması benim hatam değilmidir ?

Not : Yorumuzunu şimdi gördüm.
28
Mikrodenetleyiciler / Ynt: Pickit4 Programlayıcı kullanan var mı ?
Son İleti gönderen taydin -
Mesela şu programı düşünelim

Kod: [Seç]
#include <stdio.h>

void crash()
{
   int* p = 0;

   *p = 27;
}

void f1()
{
   crash();
}

void f2()
{
   crash();
}

int main()
{
   f1();
   f2();
}

Bunu derliyoruz ve çalıştırıyoruz:

Kod: [Seç]
[ta@bonsai ~]$ gcc -Wall a.c
[ta@bonsai ~]$
[ta@bonsai ~]$ ./a.out
Segmentation fault
[ta@bonsai ~]$

Program 0 adresine birşey yazmaya çalışıyor. Linux da bunu algılıyor ve program sonlandırıyor. Programın neresinde 0 yazıldı öğrenmek istiyoruz. O yüzden debugger altında çalıştırıyoruz

Kod: [Seç]
[ta@bonsai ~]$ gdb a.out 
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...(no debugging symbols found)...done.
(gdb) r
Starting program: /home/ta/a.out

Program received signal SIGSEGV, Segmentation fault.
0x0000555555554670 in crash ()

Evet, debugger altında programı çalıştırdık, gene aynı problem ortaya çıktı ve debugger programı durdurdu. Şimdi "stack trace" alıyoruz:

Kod: [Seç]
(gdb) bt
#0  0x0000555555554670 in crash ()
#1  0x0000555555554687 in f1 ()
#2  0x00005555555546a9 in main ()
(gdb)

Ve buradan anlıyoruz ki, crash isimli fonksiyon probleme sebep olmuş. Bu fonksiyonu f1 çağırmış, onu da main çağırmış. Olaylar zincirini görüp oradan programın hatasını çözümleyebiliyoruz.
29
Mikrodenetleyiciler / Ynt: Pickit4 Programlayıcı kullanan var mı ?
Son İleti gönderen taydin -
Debugger sadece MMU (memory management unit) olan işlemcilerde belli bir dereceye kadar fayda sağlar. Bu tip işlemcilerde, programlar işlemcinin sürekli gözetimi altında kontrollü olarak çalışırlar ve yanlış birşey yaptıklarında işlemci bunu anında algılar. Mesela linux'ta bir program yazdın ve bu program yanlış hafıza bölgesine birşey yazıyor. Linux anında bu durumu tespit eder ve programı sonlandırır.

Diyelim programı çalıştırıyorsun ve "page fault" hatası ile sonlanıyor. Hata nasıl oluyor anlamak için debugger altında çalıştırırsın. Hata  oluştuğu anda debugger programı durdurur ve bir "stack trace" alırsın. Buradan da programın çakılması noktasına nasıl geldiğini görürsün.

30
Mikrodenetleyiciler / Ynt: Pickit4 Programlayıcı kullanan var mı ?
Son İleti gönderen taydin -
Benim gördüğüm kadarıyla sadece daha hızlı programlama sağlıyor. Debugger kullanmaya gelince, çok nadir durumlarda fayda sağlarlar. Birçok firmware gerçek zamanlı olarak çalışır. Debugger ile durdurup adım adım çalıştırdığında zaten doğru çalışamaz.

Mesela DSP kodu geliştirirken, seri porttan 22 µs de bir veri geliyor ve bunlar işlenip gereken çıktı üretiliyor. Debugger'i durdurduğun anda ne olacak? O seri portunda taşma meydana gelecek.

Firmware'lerde en etkili debug yöntemi, firmware gerçek zamanlı çalışırken, bir şekilde durum bilgisi göndermek. Mesela PIC firmware geliştiriyorsun, kullanılmayan UART portlarindan birisine sürekli olarak durum bilgisi gönderirsin. Sonra da bir dijital osiloskop veya lojik analizör ile bu durum bilgilerini toplarsın, problem oluştuğu anda da inceleme yaparsın. Bu bir nevi uçaklardaki kara kutu incelemesi gibidir.