Yeni projeler baslatiyorum

Başlatan z, 06 Ekim 2013, 14:41:48

z

Kodlari yazmaya basladim ama derleyici sikintisi cikti. Hitech ile devam edecegim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

serdararikan

Burada benim kafama takilan birkac soru var.
Ben bir musteri olsam neden sadece 2x16 lcd icin maliyeti bu kadat artiracak bi urunu satin alayim?bence yapilacak urunlerin ya karmasik olaylara cozum sunmasi yada icerisinde fazla sayida birim bulundurup musterinin isini kolaylastirmasi gerekir.

z

#152
Maliyet kac lira artti?  LCD yi sayma. Onu zaten hazir kit almasan da sen zaten alacaksin. Gercekten merak ettim. LCD disindaki malzemeler kart dahil kac lira tutar?

Malzeme listesi

16F628 yada esdeger ozelliklerde islemci.
6 x 1N4148
2 x  BAT54
4 x  Led
1 x  Buzzer
2 x 2N2222
1 x 20Mhz Xtal
2 x 22p
2 x 100n
6 x Direnc
1 x 10uF
4 x Buton
2 x Jumper ve pinleri
1 x 5 li tunik konnektor
1 x PCB

Diger avantajlari defalarca yazdik. En onemlisi 3 pinden dunya kadar donanim ekliyorsun.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

justice_for_all

hemde ana kartta herhangi bir degisiklik yapmadan.ana kartinizda bisey unuttugunuzu ve eklenti yapmaniz gerektigini dusunup anakarti tekrar tasarlayip yapacagin maliyet yerine bence bu cok cok uygun.

islemcinizde pin kalmadi derdide yok en dusuk pinli islemci ile bile istediginizi yapabilirsiniz.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

omereliusuk

Alıntı yapılan: justice_for_all - 20 Ekim 2013, 20:02:21
hemde ana kartta herhangi bir degisiklik yapmadan.ana kartinizda bisey unuttugunuzu ve eklenti yapmaniz gerektigini dusunup anakarti tekrar tasarlayip yapacagin maliyet yerine bence bu cok cok uygun.

islemcinizde pin kalmadi derdide yok en dusuk pinli islemci ile bile istediginizi yapabilirsiniz.
hatta atmega8 gibi bir işlemci kullanılırsa extra pin de eklenebilir. kullanılan portlar bile geri kazanılabilir. üstelik maliyet de düşer. 1$

z

#155
Nihayet interrupt sorununa da basit bir çözüm buldum.

Öncelikle daha önceleri her çipte USART modülünde 9 bit adres modu olmayacağı varsayımı ile USARTı 8 bit normal modda kullanmayı öngörüyordum. 9 bit modu, PIC16 serisinde var. 8051 serisinde de. Dolayısı ile ATMEL serisinde de olması lazım. Kullanmayı arzuladığınız çipte bu özellik yoksa da bu benim sorunum değil.

Bu durumda RX-TX hattından giden veri, data mı adresmi diye ayrı bir hat kullanmamıza gerek kalmıyor. Boşa çıkan Adres/Data hattının adı Int olacak.

Slave cihazlardan birileri ana işlemcinin dikkatini çekmek isterse bu hattı sorgusuz sualsiz low yapıyor. Bu, Ana işlemcide ext int anlamına geliyor.

Tamam int üretildi de kim(ler) üretti?

Bu interrupt tek bir slave tarafından üretilebileceği gibi aynı anda birden fazla slave tarafından da üretilmiş olabilir.

Ana işlemci sorgulayacak.

1. slave senmisin? 2. slave senmisin? ....255. slave senmisin?

ŞAKA ŞAKA, böyle değil tabiki.

Ana işlemci data hattından 0x00 adresine ADR şekline komut yolluyor.

0x00 tüm slaveler tarafından cevaplanması gereken bir komut.

Komutun anlamı?

Millet, 0x00 adresini takip eden data ile kendi adresininizi AND leyin. Sonuç 0'dan farklı ise INT hattını lowda tutun.

Ana işlemci 8 kez bu komutu yolluyor ve komut aşağıdaki gibi.

0x00 0x01
0x00 0x02
0x00 0x04
0x00 0x08
0x00 0x10
0x00 0x20
0x00 0x40
0x00 0x80

en fazla 8 sorgu sonunda ana işlemci interrupt üreten slave kartın adresini öğrenmiş oluyor.

Yöntemi nasıl buldunuz?

Öte yandan PPJ bus var diye 255 tane kart takacak halimiz yok. 4..5 tane kart için sıra ile senmisin senmisin diye sormak da yeterli.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

yöntem güzel hocam

fakat 0x05 ile 0x15 int e girdiğinde  sadece 0x15 tespit edilmiş olacak

0x05 in tespiti nasıl yapılacak?

z

#157
0x15 ve 0x05 adresli iki kart aynı zamanda interrupt ürettiyse önce 0x15 cevaplanırve bu int durumu ortadan kalkar. Ardından 0x05 cevaplanır. Bu durumda interrupt önceliği kart adresi ile orantılı olur.

Fakat fikrimi sorarsanız, int hattı low yapıldığında 4..5 kartın int statusu tek tek sorgulanır. Daha sonra sorgu sonuçlarına göre birden fazla int kaynağı varsa öncelik durumu ana işlemci tarafından belirlenir.

Dediğim gibi bu bus'a bağlayacağımız kart sayısı 4...5 i geçmeyecektir.

Kart sayısı artınca BUS zaten artan trafiği kaldırmayacaktır.

mesaj birleştirme:: 23 Ekim 2013, 13:29:04

Bu durumda strateji şu şekilde olur.

İnterrupt üretecek slave int hattını low yapar.

Ana işlemci o esnada iletişim halinde olduğu kartla işinin bitmesini bekler.

Ardından Tek tek kartlardan Int Status bilgisini sırayla ister. (Sorgulama int önceliği ile yaplabilir.)

İnt hattını low yapan slave sorgulanır sorgulanmaz hattı serbest bırakır. Böylece int hattı diğer slavelerin kullanımına sunulur.

PPJ bus'a bağlanacak 4..5 tane kart için en optimum yöntem bu gibi görünüyor.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Romda boş yer kalırsa hazırda olması arzulanan ve LCD den verilecek mesajlar için de bir çalışma yapmak gerekiyor.

Hazır
Mesgül
Ayarlar
Geri
İleri
Çıkış
Sakla
Vazgeç
giriniz
Artır
Eksilt
Menu
???
???
???
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

justice_for_all

Deneme sansiniz oldu mu hocam?
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

z

Basimda pek cok is vardi. Fakat ara ara ugrasmaktayim.

4 adet ledden istenenler yakilip sondurulebiliyor yada flash et denebiliyor. Duduk otebiliyor yada kesik kesik beepliyor.

Bunlara ilave olarak klavyenin ve ledlerin tarama yontemiyle kullaniliyor olmasi int rutinine cok yuk getirdi ve haberlesme rutinleri veri kacirmaya basladi.

ASM'ye basvurmadan sil bastan yeniden yazmaya basladim.

MCU'yu 16Mhz de calistiriyorum. Belki 20Mhz de isler rahatlayacak ama xtalim yok.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

justice_for_all

Hangi MCU yu kullaniyosunuz hocam
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

z

16F628A, semanin ayinisiyla calisiyorum. Sadece 16Mhz xtal kullanmak zoruda kaldim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

justice_for_all

anladim hocam yapabilecegim bise varsa yapayim.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

z

Semada sorun kalmadi. LCD/Klavye/ledler duduk ok. Adres/Data ve RX/TX hatlarindan3.3v/5v level konverterler sayesinde karsidaki islemci ile sorunsuz haberlesebiliyor.

Sema %100 test edildi.

Ugrasirim zamanim var dersen verdigim semaya kod yazabilirsin. Benim icin değil de kendin icin. Zevkine.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com