pbp pin dizilimi

Başlatan kotan04, 16 Mart 2011, 09:05:49

My75

Sıyırmana gerek yok,16F648A kullan 2 katı kod alanın olur.

PIC16F627A 1024  'word
PIC16F628A 2048
PIC16F648A 4096

Yazdığım program 556 word..Basit bir animasyon gibi görünüyor ama öyle değil,karışık pin ile hiç değil.
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

kotan04

evet hocam bende ilk gördüğümde hemen yaparım dedim ama patlıcan gibi oldum şimdi:) benim bunu 628a da çözmem lazım :S
kkkkoootttaaannn000444

omereliusuk

#32
Alıntı yapılan: kotan04 - 19 Mart 2011, 21:54:46
evet hocam bende ilk gördüğümde hemen yaparım dedim ama patlıcan gibi oldum şimdi:) benim bunu 628a da çözmem lazım :S
hocam bitlerle bir uğraş bak formülleştirebilirsin...
ben de önce kolay gibi gördüm baktım olmuyor bunun böyle olmaması gerekir daha kolay bir yolu olmalı dedim. sağa toplayanı da sola toplayanı da toplam 362 word tuttu<senin anlattığın şekilde ve anlattığının tam tersi şekil dahil olmak üzere>. ama önce eline kağıt kalem al  <mümkünse kareli olsun> yoksa bu iş olmaz... en azından benim için olmadı.

My75

Anladığım kadarı ile pcb ve malzemeleri hazırlamışsın ki hata yapmışsın,bir projeye başlamadan önce ilk yapacağın iş doğru işlemciyi seçmektir.Kullanacağın pic'in flash belleği ve eeprom özelliklerine çok dikkat etmek gerekir.Ben bir ara 60 adet 16F73 aldım elimde çakılı kaldı sadece eeprom' u olmadığı için,nasılda gözümden kaçmış. :D

Üstelik karışık pin ile çizim yapmışsın ki işi zorlaştırmıssın.Bu tip işlerde port sıralamasını kullanmak işi kolaylaştırır.Birde bu işler için port çoklamada düşünebilirdin mesela senin bu proje bir adet 12F629 ve 2 adet 74HC595 ilede çok rahat yapılabilirdi.

Alandan kazanmak için pause için gosub return yapabilirsin sanırım her defasında pause kullanmıyorsun..Eğer çok adet almadıysan 16F648 kullan ama sanırım sana oda yetmeyecek..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

kotan04

butondan gönderilen bilgiye göre  animasyonları düşürecektim fakat bellek yetmedi ne güzel buton kontrolu ve animasyonların hepsi tamamdı şimdide bellek çıktı karşıma  vallaha çok kötü moralim sıfırlandı..
kkkkoootttaaannn000444

My75

Kodları bir gönder bakalım yapabileceğimiz bir şey varmı.
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

kotan04

Alıntı yapılan: omereliusuk - 19 Mart 2011, 22:26:18
Alıntı yapılan: kotan04 - 19 Mart 2011, 21:54:46
evet hocam bende ilk gördüğümde hemen yaparım dedim ama patlıcan gibi oldum şimdi:) benim bunu 628a da çözmem lazım :S
hocam bitlerle bir uğraş bak formülleştirebilirsin...
ben de önce kolay gibi gördüm baktım olmuyor bunun böyle olmaması gerekir daha kolay bir yolu olmalı dedim. sağa toplayanı da sola toplayanı da toplam 362 word tuttu<senin anlattığın şekilde ve anlattığının tam tersi şekil dahil olmak üzere>. ama önce eline kağıt kalem al  <mümkünse kareli olsun> yoksa bu iş olmaz... en azından benim için olmadı.

aslında şimdi formülleşmiş gibi ama işte sadece bu kodlar yok 6-7 farklı animasyon var butondan gelen bilgiye görede aynı animasyonların kanal sayısı düşecek dolayısı ile kod cümbüşü yaşanıyor
kkkkoootttaaannn000444

omereliusuk

tarif et onları da formülleştirelim tabi becerebilirsek. ;)

My75

Bu 6-7 animasyon sürekli tekrarlıyormu? Kanal dediğin ledlermi? O zaman kanalları düşürüyorsan ledlerin geçişinede müdahale ediyorsun demektir.1 den 15 kadar değil de 6 ya kadar gibi.
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

kotan04

Alıntı yapılan: My75 - 19 Mart 2011, 23:03:14
Bu 6-7 animasyon sürekli tekrarlıyormu? Kanal dediğin ledlermi? O zaman kanalları düşürüyorsan ledlerin geçişinede müdahale ediyorsun demektir.1 den 15 kadar değil de 6 ya kadar gibi.

kanal derken led demek istedim pardon
şimdi devreyi anlatım devreye 15 led bağlı içinde 6 farklı led efektleri var enerji verdiğimde 10 sn bekliyor ve efekler başlıyor sürekli dönüyor  diyelimki ben bu animasyonların 14 kanalda aynı şekilde çalışmasını istiyorum ozaman şöyle yapıyorum enerjiyi kesiyorum enerjiyi tekrar veriyorum ve butona 14 defa basıyorım ve tüm animasyonlar 14 led içinde oynamaya başlıyor ve bunu 11 kanala kadar bu şekilde müdahale ederek yapıyorum gerçi böyle yapmasını istiyorum ama ben 13.led için animasyonu yazim dedim ama kodlar okadar çok olduki bellek yetmedi buda bendeki pin diziliminin azizliği
kkkkoootttaaannn000444

My75

Hala anlamış değilim,sen şimdi her animasyonu her defasında kanal sayısına göre tekrarmı yazıyorsun? Yoksa program içinden eksilen kanallara göre geçişlerimi düzenliyorsun?
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

kotan04

Alıntı yapılan: My75 - 19 Mart 2011, 23:21:07
Hala anlamış değilim,sen şimdi her animasyonu her defasında kanal sayısına göre tekrarmı yazıyorsun? Yoksa program içinden eksilen kanallara göre geçişlerimi düzenliyorsun?

ben şimdi malesef her kanal sayısına göre tekrar yazıyorum ondan bellek yetmiyor aslında sellect case içine yerleştiriyorum animasyonları düşürerek ama bunun doğru olmadığının farkındayım ama farklı bir yol bulamadım :(
kkkkoootttaaannn000444

omereliusuk

gonder:
PORTB.7=MSN.0      '
PORTD.4=MSN.1
PORTC.7=MSN.2  
PORTD.5=MSN.3
porta.5=MSN.4
portc.2=MSN.5
PORTB.5=MSN.6
PORTB.6=MSN.7
return

hocam bir word oluştur. bunun adı msn olsun veya led olsun. sen 16 bitlik sayını led adını verdiğimiz word tipi değişkene aktar.
yani şöyle led=$3f33 mesela sonra gosub gonder
bitti. illa ki sırasıyla olacak diye bir şey yok. zaten gönderdiğin bilginin 'gonder' bölümündeki aktarımlarını kimsenin gözleri algılayamaz.
yukarıda msn.0 demek msn adlı word tipi bilginin 0. bitini portb.7 bacağına aktarır.

kotan04

Alıntı yapılan: omereliusuk - 19 Mart 2011, 23:33:07
gonder:
PORTB.7=MSN.0      '
PORTD.4=MSN.1
PORTC.7=MSN.2  
PORTD.5=MSN.3
porta.5=MSN.4
portc.2=MSN.5
PORTB.5=MSN.6
PORTB.6=MSN.7
return

hocam bir word oluştur. bunun adı msn olsun veya led olsun. sen 16 bitlik sayını led adını verdiğimiz word tipi değişkene aktar.
yani şöyle led=$3f33 mesela sonra gosub gonder
bitti. illa ki sırasıyla olacak diye bir şey yok. zaten gönderdiğin bilginin 'gonder' bölümündeki aktarımlarını kimsenin gözleri algılayamaz.
yukarıda msn.0 demek msn adlı word tipi bilginin 0. bitini portb.7 bacağına aktarır.
hımm bir inceleyim hocam 
for  kutu=0 to 3  'porta.1,0,7,6  için                'sola artarak +
lookup kutu,[2,3,131,195],led
porta=led:pause 300
next
for  kutu=0 to 7   'portb.7,6,5,4,3,2,1,0 için
lookup kutu,[128,192,224,240,248,252,254,255],led
portb=led:pause 300
next
for  kutu=0 to 1   'porta.4,3,2 için
lookup kutu,[211,219],led
porta=led:pause 300
next


bu animasyonlardan biri pendeki pin dizilimine göre desimal sayı yolladım  bunu verdiğiniz word tipi değişkenle nasıl ilşkilendirebilirim?
kkkkoootttaaannn000444

My75

#44
Alıntı yapılan: omereliusuk - 19 Mart 2011, 23:33:07
gonder:
PORTB.7=MSN.0      '
PORTD.4=MSN.1
PORTC.7=MSN.2  
PORTD.5=MSN.3
porta.5=MSN.4
portc.2=MSN.5
PORTB.5=MSN.6
PORTB.6=MSN.7
return

hocam bir word oluştur. bunun adı msn olsun veya led olsun. sen 16 bitlik sayını led adını verdiğimiz word tipi değişkene aktar.
yani şöyle led=$3f33 mesela sonra gosub gonder
bitti. illa ki sırasıyla olacak diye bir şey yok. zaten gönderdiğin bilginin 'gonder' bölümündeki aktarımlarını kimsenin gözleri algılayamaz.
yukarıda msn.0 demek msn adlı word tipi bilginin 0. bitini portb.7 bacağına aktarır.



Bu şekildede olur..Bu durumu ile sadece yürüyen ışık,ama iş toplanarak çoğalmaya gelince yine arap saçı oluyor.


BASLA:
LED=LED<<1  'yada   led=led*2
DelayMS 100
If LED=32768 Then LED=1    'YADA PORTA.2=1 THEN LED=1
GoSub GONDER

GoTo BASLA


GONDER:
PORTA.1=LED.0
PORTA.0=LED.1
PORTA.7=LED.2
PORTA.6=LED.3
PORTB.7=LED.4
PORTB.6=LED.5
PORTB.5=LED.6
PORTB.4=LED.7
PORTB.3=LED.8
PORTB.2=LED.9
PORTB.1=LED.10
PORTB.0=LED.11
PORTA.4=LED.12
PORTA.3=LED.13
PORTA.2=LED.14
Return
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...