Simülasyonda Çalışan Devre neden çalışmıyor..

Her işin kendine göre incelikleri var.
C içinde böyle.Kısa öz hızlı kodlar dersen az kaynakla çok iş dersen çok hızlı çevrimler dersen elbette işin inceliklerini bilmek gerekiyor ve bu birikin çalışma gerektiriyor.
Sadece C için değil mesela senin yazdıkların içinde.Daha kısa yazılabilir,interrupt lar kullanılarak daha hızlı ve hatasız çalıştırılabilir gibi.
Benim kolay dediğim şu yönden.CCS de çok fazla kaynak var,özellikle Türkçe de var.
Kurduğunda görürsünki proje sihirbazı ile kolayca genel rutinler kendiliğinden yazılır.Örneklere bakarak araları doldurur ve çalışan güzel projeler oluşturulur.
Bu şevk ile C nin incelikleri öğrenilir.Genel C kuralları C derleyicilerin çoğunda az buçuk farklarla kullanılır.Bununda örnekleri çok.
Konusu sadece derleyiciler olan örneğin ccs anlatan forum yapısında değilde blog gibi yerler var ama başka site adresi yasak ve bu konuda bağnazlık noktasında düşünenler var.Bu yüzden direk adres veremiyorum.Oysa ülkemizin gelişimi sınırsız bilgi paylaşımıyla gerçekleşir.Günümüz toplumları bilgi toplumları olmak zorunda.Neyse belki haklı oldukları noktalarda vardır reklam peşinde olanlar gibi.
Aşağıdaki linki incele.
Bir ara ccs ile basitce bir proje oluşumunu resimleyeyim.

https://www.kontrolkalemi.com/forum/konu/ccs-c-mi-yoksa-microbasic-mi-hangisi.7255/
 
@musallim

hocam CCS i incelemeye başladım bile cidden bazı yönlerde (koşullu yordamlar mesela) basic ten çok üstün.. bu konuda altaş yayıncılığın kitabı da güzel bi kaynak gibi duruyor.. buradan tüm başlayacak arkadaşlara tavsiye ederim..

birde hocam şu devre son bi eksik kaldı onun içinde ayrı konu açmayım dedim.. burdan devam etmeyi uygun gördüm..

Son yaptığım ufak bir iki eklemeyle devre daha da stabil oldu bana göre.. ama devrede en büyük bi yanlış var o da zamanlarda yaşanıyo.. mesela hocam ben eepromda bir adres dakika bir adres saniye için ayrıyorum.. ve sonuç olarak o değerleri okuyup sonra saniye cinsine çevirip zaman döngüsünün içiine koyuyorum.. ama derler ya kazın ayağı öyle değil diye.. buradada aynı durum söz konusu.. mesela 1 dakika 02 saniye ayarladığım ssüre bana 16 17 saniye olarak geri dönüyor.. bu konuda nasıl bi yol izlemem gerekli acaba.. yine bi yerde hata yapıyorum ama nerde? proteus da devrenin kendisi de aynı tepkiyi veriyor bu arada..

şimdiden teşekkür eder hayırlı günler dilerim..
 
Tekrarda yarar var.Kodları görmediğimize göre atıp tutturmaya çalışacağız.
Genel olarak hassas zaman ayarları gerektiğinde timer (lar) kullanılır.
Microbasic detaylarını bilmiyorum,ama pbp dan örnekleyecek olursak,pause komutları süresince kesme oluşsa dahi öylece bekler.Bunu önlemek için pause süreleri kısa tuttulup bir kaç tane yazılır.Ama ccs ve tabii en iyisi Hi-Tech (Pic c - Pic c lite diye bilinir) böyle değil.Senin yazılımda bolca var.

Tabii bu arada yazılım da , mantık hataları yapmadığını düşünüyoruz.Eeproma yazmak için bir süre gerekli,derleyici bu süreyi nasıl ekliyor bilmiyorum,o arada saymaya devam ediyormu bilmiyorum.
Lakin timer kullanılırsa yazılımdan bağımsız saymaya devam eder.
Örnekleri en az , az kullanılan bir derleyici ile başlamışsın. :

Evet Serdar Çiçek in kitabı çok güzel.Ayrıca kitaptaki kodlar internet ortamında var.Yazmada kolaylık.
 
Arkadaşlar pic 16F877 bildiğim kadarıyla 20Mhz lik kristallerle uyumlu olarak çalışıyo isterseniz bunu bi deneyin çalışcaktır
 
bir öneride ben vermek isterim yazdığın kodu pic mikrodenetleyiciye kodlarken osilotör seçimine ve pin bağlantılarına dikkat ettinmi ? birde programladığın pic'i minumum demo bord akurup çalışıp çalışmadıını testet zira hata pic de olmayabilir kurduğun devredede olabilir ? genelde ama kesin olmamakla birlikte eğer pic kodları similasyonda sorun çıkmıyorsa onun çalışması için kurulan devrede sorun vardır kolay gelsin
 
Son düzenleme:
devrenin çalışmama sorunu eğer kristali pic'in bacaklarına uzak kalıyorsa sorun oluyor mümkün oldugunca yakın bağla birde proğramı 2 defa yükle 1.de genelde çalışmıyor
 
arkadaşım ben sana sana sorunun neden kaynaklandığını söyleyeyim benimde başıma geldi ccs c kullanıyorum baştan belirteyim piyasadan bir abimize bir sanişye ve dakika ayarlı zamanblayıcı işi geldi bu işi hallletik benzetim programında (isis) sorunsuz çalışıyordu fakat berad bordda çalışmadı küçük araştırladan sonra sorunu çözdük sorun şu butun olarak a portunu kullanıyor isen a portunun bacaklarında başka özellik içeren modüllerin özellikleri var ilk önce onları devre dışı bırakman gerekiyor sonra bu problem çözüldü ben böyle çözdüm. bilginiz olsun

saygılarımla iyi çalışmalar...
 
Merhaba arkadaşlar.

Ben de benzer bir sorun ile karşı karşıyayım. Ben pic16f877 kullanarak bir devre oluşturdum ve pic için gerekli yazılımı assembly dilinde yazdım. Mplab programı ile derlediğim yazılımı isis üzerinde kurup çalıştırdığımda devre sorunsuz olarak çalışıyor ancak board üzerine kurunca düzgün çalışmıyor. Board üzerinde klavyeden bilgi girince devre saçmalıyor. Yazılımın hiçbir kısmında olmayan işlemler gerçekleştiriyor. 3 ayrı boardda denedim, 4 ayrı pic16f877 kullandım, kristali ve kondansatörleri değiştirip denedim gene de düzgün çalışmadı. Sorunun ne olduğunu bir türlü çözemedim. Bu konuda bana yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

  • soner_otopark.rar
    89.1 KB · Görüntüleme: 6
Daha önce böyle bir sorunla karşılaşan ya da sorunun neden kaynaklı olabileceğini bilen ve bana yardımcı olabilecek kimse yok mu?
 
Arkadaşlar iyi çalışmalar. devrem simülasyonda çalıştı sıkıntısız (proteus 8), kodlama kısmında derleme hatası almıyorum c dili ile programladım .pic(16f877a) while döngüsüne girmeden programın içine lcd ye karakter yazdırdım fakat bir sonraki karakter yazdırma işlemine geçmiyor pic-reset butonuna bastığımda ise lcd de ki yazan karakter hala duruyor. iki farklı pic denedim. pic'in bugda kalma durumu olabilir mi yada gerekli konfirügasyon ayarları doğrumudur sizce ?. yazılımda da olabilr mi sorun? . her türlü yardımlarınız yararı olacağını düşünüyorum iyi çalışmalar.
 

Ekli dosyalar

  • firat.rar
    121.4 KB · Görüntüleme: 6
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…