Pic Programlama Hakkında Birkaç Soru
-
Hocalarım şimdi bu piclerin içindeki kapıları biz mi ayarlıyoruz yoksa onlar zaten hali hazırda mı oluyor ?
Pic Programlamanın mantığı nedir ?
Örneğin 4-5 bacak giriş 6. Bacak çıkış ise ben bunları kod ile 4 XNOR 5 to 6 yapabilir miyim ?
Ben bir devrede sadece kapı kullanmak için ne yapmam gerekir ? Yani Şunu demeye çalışıyorum 4 Girişim var ve ben 4 girişti Tek bir TVEYA Kullanmak istiyorum. Bunu basit devre elemanlarıyla yapabilir miyim yoksa pic şart mıdır ?
DEMUX-DECODER vs vs .. Bunlar birer devre elemanı mıdır ? Yoksa pic içerisinde biz bu devreleri kendimiz mi tasarlıyoruz ? (KOD OLARAK)
Sorular çok basit gelebilir fakat nasıl araştıracağımı bilemediğim için size sorayım dedim :/
-
Araştırmaya başlaman gereken nokta: Dijital Elektronik.
Sorunun cevabı ise evet. Pic ile mux/demux encoder/decoder vs.. yapabilirsin.
Dijital elektronik ile ilgili araştırmaya başlayınca zaten görürsün ama hepsinin entegresi var and, or, xor vs...
PIC programlamanın mantığını sormuşsun. Mikroişlemcinin yapısını ve çalışma şeklini biliyorsan benzer mantık.
Edit: PIC çalışma mantığı olarak düşündüm. Programlama mantığı şöyle işliyor. Senin yazmış olduğun kod makina diline çevriliyor pic in kendi instruction setine göre. Çevrilen kod PIC içerisinde bulunan kod için ayrılmış rom bölgesine yazılıyor
aercys tarafından 10/Kas/16 20:41 tarihinde düzenlenmiştir -
aercys bunu yazdı
Araştırmaya başlaman gereken nokta: Dijital Elektronik.
Sorunun cevabı ise evet. Pic ile mux/demux encoder/decoder vs.. yapabilirsin.
Dijital elektronik ile ilgili araştırmaya başlayınca zaten görürsün ama hepsinin entegresi var and, or, xor vs...
PIC programlamanın mantığını sormuşsun. Mikroişlemcinin yapısını ve çalışma şeklini biliyorsan benzer mantık.
O zaman PIC programlama denen şey sadece kapıları yazmak mıdır ? Yanlış anlamadım umarım
-
Mesajda düzenleme yaptım ancak geç kaldım sanırım. Son soruda eğer kastettiğin FPGA'deki gibi bir mantık ise hayır kapıları programlamıyorsun.
-
Picin görevi giriş değerlerine göre sonuç üretmek . Bizim görevimiz De giriş değerlerine göre üretilecek sonucu tasarlayıp koda dökmek mi ?
-
MhmdAlmz bunu yazdıaercys bunu yazdı
Araştırmaya başlaman gereken nokta: Dijital Elektronik.
Sorunun cevabı ise evet. Pic ile mux/demux encoder/decoder vs.. yapabilirsin.
Dijital elektronik ile ilgili araştırmaya başlayınca zaten görürsün ama hepsinin entegresi var and, or, xor vs...
PIC programlamanın mantığını sormuşsun. Mikroişlemcinin yapısını ve çalışma şeklini biliyorsan benzer mantık.
O zaman PIC programlama denen şey sadece kapıları yazmak mıdır ? Yanlış anlamadım umarım
İlk olarak şu soruna cevap vereyim. Hayır.
Pic bir mikrodenetleyici ailesidir. Mikrodenetleyici dediğimiz şey ise mikroişlemcinin programlanabilir hafıza , analog/dijital giriş ve çıkışlar, osilatör gibi ek elemanlarla donatılmış paket halidir.
Pic üzerindeki giriş, çıkış, reset, osalitör gibi i/o pinleri zaten görünür ve datasheetinde belirtilir. Senin yaptığın şey bu giriş çıkışlardan aldığın veya verdiğin bilgiye göre mikrodneetleyicinin nasıl davranması gerketiğini göstermek. Sen burada programını yazarken hangi portların input hangilerinin output olduğunu belirledikten sonra kodunu ona göre yazarsın.
Yani en basitinden atıyorum 1 numaralı inputtan lojik 1 geldiğinde 6-7-8-9 numaraları pinlere bağlı ledleri sıralı yakmak istiyorsan ona göre programını yazarsın. Veya atıyorum 2 ayrı girişten gelen sayı bilgisini toplayıp yazdırmak istiyorsan (hesap makinesi) ona göre içinde programını yazarsın.
Diğer sorularına gelirsek:
"Ben bir devrede sadece kapı kullanmak için ne yapmam gerekir ? Yani Şunu demeye çalışıyorum 4 Girişim var ve ben 4 girişti Tek bir TVEYA Kullanmak istiyorum. Bunu basit devre elemanlarıyla yapabilir miyim yoksa pic şart mıdır ? "
Tabi ki basit devre elemanları ile yaparsın da gereksiz yere sol kulağını sağ elinle tutmak gibi uzun yoldan olur.
"DEMUX-DECODER vs vs .. Bunlar birer devre elemanı mıdır ? Yoksa pic içerisinde biz bu devreleri kendimiz mi tasarlıyoruz ? (KOD OLARAK)"
Evet birer devre elemanıdır. Pic içerisinde de bunlar mevcuttur kodunu yazarken ona göre yazarsın.
Senin daha önceki bir konunda da demiştim ama belli ki dikkate almamışsın. Gördüğüm kadarı ile bilgin olmadan olaylara dan diye damdar düşer gibi ortasında atlıyorsun. Bilgisayar/elektronik sektöründe en gereksiz insan herşeyi az az ama yetersiz bilen insandır. Bırak pic işini elektronikçi bir arkadaşın yapsın sen pc kısmında yazılım tarafını hallet.
Yok ben yine kafamn dikine gidecem diyorsan sana tavsiyem önce standart bir pic datasheetini oku zten çoğu sorunun cevabını orada veriyor.
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
-
Güzel kardeşim neden PIC'e döndün şimdi? AVR ile karşılaştırınca fiyat olarak dezavatajlı. PIC için ücretsiz C derleyicisi bulamazken AVR serisinde gcc-avr var. Koskoca C kütüphanesi var ayrıca. İşlemci komutları konusunda da avrde çoğu komut bir döngüde gerçekleşiyor. 16F serisindeki gibi tek yazmaçla sınırlı değilsin vs. Elektronikçi değilim fakat dökümantasyon ve örnek devreler hariç AVR avantajlı. Güç tüketimi vs. konularında yorum yapamam tabi, dediğim gibi elektronikçi değilim.
-
@Torpedo_XL dışarıdan bakılınca evet öyle gözüküyorum. Ama amacım öyle dan diye işin içine girmek değil abi millet zaten bunun okulunu okuyup SADECE bu işi yaparken ben niye böyle şeylerle uğraşayım ki ?
Haklısın dediğinde ama Şöyle birşey var . Benim yazdığım kod nerde calısır ? Nasıl davranır ? Mantığı nedir ? ALU nedir ? PIC nedir ? Giriş çıkış nedir ? Lojik devre nedir ? Bu Lojik devrelerle ne olur gibisinden temel bilgilerim olursa bir kodu yazarken int BirinciGiristenGelenVeriDegeri=1; yazmak yerine Örneğin kullandığım hafıza çok az ise int BV=1 yazarım yani amaç öğrenmek değil amacım o yazdığım kod nasıl çalışır basit düzeyde bilmek :)
Oturup bir devre yapmicam yani yada mantıksal bir donanım da tasarlamayacağım haddim değil . Ama Neyin ne olduğunu bildiğim sürece yazdığım kodu ona göre yazarım.
Yani bir elektronikçi bana düzgün bir donanım sunduğunda o donanım üzerinde yazacağım kodun KB-Hız-Performans-Mantık gibi parametrelerin neler olduğunu bilmeden bir programcı gibi kod yazarsam sanırım tekmeyi yerim .
Değerli yorumların için teşekkürler biraz bakıp araştırayım zevkli şeylere benziyorlar :) Bi pic ile 3-5 Led yakmayı deneyeyim yada Sinyal göndermeyi falan deneyeyim X bir cihaza .
@YeniHarman , AVR RISC mimarisine uygun tasarlanmış bir mikrodenetleyici olduğunu biliyorum . PIC veya AVR daha önce kullanmadığım için Fiyat Performans Hız vs bakımında kıyaslama gerçekleştirmedim. Muhtemelen PIC ve AVR nin avantaj ve dezavantajları tartışılır ama amacım bir devre falan tasarlamak değil temel bilgi :D Yazdığım kodun nerde ne işe yaradığını bilmek ve donanımları tanımak istiyorum :) Sonuçta RAM içerisinde Saklayıcılar var (Flip Flop devreleri olması lazım) Bunu bilmeden önce La bu rami niye bu kadar harcıyoruz felan diye düşünüyordum verdiğimiz saçma sapan değişken isimleri vs den olsa gerek. FORTRAN'ın 6 karakter sınırı da bu yüzden olsa gerek öyle düşünüyorum RAM'lerin yetersiz olduğundan dolayı böyle bir sınırlama getirmiş olabilirler gibi gibi. Şimdi program yazarken saçma sapan değişken isimleri vs vermiyorum veya. Yazdığım algoritmayı sürekli O(Logn) seviyesine yada daha altına çekmeye çalışıyorum donanımın ırzına geçmemek için. Recursive fonksiyonlar yazarak Ram'in üstüne su dökmüyorum artık gibi gibi :D Yanlış anlaşıldı saınırım Amaç Pic Progralama öğrenmek değil Donanımı tanımak :/Sonuçta Bilgisayar = 0/1 Saat Darbeleri (Lojik)
EDİT : @torpedo_XL , döküman için teşekkür ederim bu arada bir göz gezdireyim bakalım PIC neymiş ne işe yararmış :D
MhmdAlmz tarafından 10/Kas/16 21:26 tarihinde düzenlenmiştir -
hocam bende bi ara araştırıyodum bu siteyi buldum http://320volt.com/pic-basic-dersleri/ ama o kadar da hevesli olmadığımdan döküman biriktirip harddisk yedim hala xp bilgisayarımda duruyor PICC complier ama elime PIC almışlığım yoktur
bide şey sorucam hocam sen bunu hobi mi istiyosun yoksa şirket mi istedi amca oğlu proje mi yapcakmış neyi istediysen söyle ona göre şey edelim bizde
-
@sercoo , hocam tamamen donanımı öğrenmek istiyorum başka amacım yok. Sadece ne ne dir ne ne değildir onu öğrenmek istiyorum.
Örneğin ben bir Modül'ü programlıyordum bundan 5-6 gün önce . Http Server / WebSocket hakkında ufak tefek bilgilerim vardı. Sonra @torpedo_XL ESP8266 hızı arduino'dan daha fazla onu kullan gibisinden birşey söylemişti. Sonra bende En iyisi PIC nedir ALU nedir Bunlar nasıl çalışır Lojik sistemler ve mantıksal sistemlerin çalışma prensibi mantığı vs vs nedir ne değildir Hız nedir Frekans nedir gibisinden az ufak bilgi sahibi olayım dedim . MicroIşlemci nedir nasıl çalışır ne işe yarar görevi nedir gibisinden bakıyordum öyle. PIC programlama konusunda kafama takılan şey oldu mesela bu kapıların breadboard üstünde tasarımı vardı orda bi prof PIC 'i breadboard'a yerleştirdi elinde de 1 kağıt orda kapılar falan var işte 5-6 pin input 7. pin Output gibisiden vermiş anahtar ile 5-6 açtığnda led yanıyordu . Bende şeyi merak ettim acaba bu pic içerisindeki kapıları biz mi yazıyoruz nasıl oluyor gibisinden bi araştırayım dedim. Bulamadım daha doğrusu nasıl araştıracağımı bilemediğimden beceremedim öğrenmeyi. Soluğu burdaki alimlerde aldım :D Tamamen olay bundan ibaret yoksa oturup devre tasarlayıp mikroişlemci vs yapma gibi bi derdim yok tamamen temel birde devre elemanlarını tanımak amacım :) Sonuçta Bizim atamız Elektronik :D (Yazılım Mühendisi adayıyım bu arada ) Atalarımızın mirasını öğrenmemek olmaz diye bi araştırayım dedim :)
-
MhmdAlmz bunu yazdı
Haklısın dediğinde ama Şöyle birşey var . Benim yazdığım kod nerde calısır ? Nasıl davranır ? Mantığı nedir ? ALU nedir ? PIC nedir ? Giriş çıkış nedir ? Lojik devre nedir ? Bu Lojik devrelerle ne olur gibisinden temel bilgilerim olursa bir kodu yazarken int BirinciGiristenGelenVeriDegeri=1; yazmak yerine Örneğin kullandığım hafıza çok az ise int BV=1 yazarım yani amaç öğrenmek değil amacım o yazdığım kod nasıl çalışır basit düzeyde bilmek :)
Ben 4 yildir bunlarin uzerine okuyorum, hala kafamda aralarinda kopru kurmakta, calisma mantiklarini anlamakta zorlaniyorum. Daha ogrenmem gereken binlerce sey var. Bunlar ne kadar basite indirgenebilip de bu konuda bilgisi olmayan insanlara anlasilabilir bir sekilde aktarilabilir gercekten muamma.