sayın arkadaşlar pbp de bir program yazdım aslında bitirdim oldu çalışıyor ama ekleme yapacağım yapamıyorum çünkü program 11kb ta geldi devrede ds1302 var bunun çıkışını lcd de lcdout $fe,$80,hex2 saat.... olarak okuyabiliyorum ama bunu matrixe yönlendirmek için mesela şöyle bir işlem yapmak zorunda kaldım
if saniye.4 = 1 then saniye = saniye - 6 if saniye.5 = 1 then saniye = saniye - 12 if (saniye.4 = 1) and (saniye.5 = 1) then saniye = saniye - 32 if saniye.6 = 1 then saniye = saniye - 24
bu burda kısa gibi görünüyor tabi ama saat dakika tarih vs ile hepsini yapınca (tarih kısmı bunun kadar uzun olmuyor) tabi prog. birazcık büyüdü aceba kısa bir yol varmıdır
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
buda devresi ve şunuda sorayım bu devre için bu hex dosyası büyükmü yoksa normalmi ben daha önceden 11.2 kb tı geçtiğimde devrenin bazı yerlerde saçmaladıgını gördüm (tabi bu isis için geçerli değil 24kb ta bile çalışıyor isiste) peki bunu çözmenin bir yolu varmıdır
programı yollaman mümkünse eğer..Büyük ihtimal programı küçültecek değişiklikler yapabiliriz...Bence tek yolu da bu
Basic te program yazarken dikkat edilmesi gereken noktalar var;
-Olabildiğince 2 nin katlarıyla işlem yapmak. -Bir sayıyı 2 nin katlarına bölmek ya da çarpmak yerine sağa sola kaydırmak -Aynı işlemi yapan program parçalarını tek bir etiket altında toplamak. örn: 10 yerde delayms 10 kullanmak yerine, delayms 10 sağlayan tek bir etiketi gerekli yerlerde çağırmak. -alt alta if komutları kullanmaktan oldukça kaçınmak. vs vs...
Bu tür teknikler ile program boyutu oldukça küçültülebilir...Programı bunlara dikkat ederek yazdıysan 877 nin hafızasının dolacağını sanmıyorum..Hex dosyasının bilgisayardaki boyutu ile pic teki boyutu da farklı çıkıyor.Bu yüzden de yanılıyor olabilirsin..Programlayıcıya hex i verdiğin zaman kod hafızasının dolup dolmadığını kontrol edebilirsin..
< Bu mesaj bu kişi tarafından değiştirildi OzanGazi -- 10 Mart 2007; 9:57:38 >
if saniye.4 = 1 then saniye = saniye - 6 if saniye.5 = 1 then saniye = saniye - 12 if (saniye.4 = 1) and (saniye.5 = 1) then saniye = saniye - 32 if saniye.6 = 1 then saniye = saniye - 24
Niçin bunları yapmak zorunda olduğunuzu anlayamadım ?
eşittirin solundaki olması istediğim rakam, sağındaki aldığım rakam. dediğim gibi aldığım bu veriyi lcd ye şu şekilde yazdığımda lcdout $fe,$1, hex2 saat...... diye yazdığım zaman sorun ortadan kalkıyor demekki alınan sayı hex2 ye çevrilmesi gerek ben uğraştım belki bir formul çıkarılabilir diye yapamadım ve öyle bir işlem yapabildim
quote:
Orjinalden alıntı:OzanGazi
programı yollaman mümkünse eğer..Büyük ihtimal programı küçültecek değişiklikler yapabiliriz...Bence tek yolu da bu
Basic te program yazarken dikkat edilmesi gereken noktalar var;
-Olabildiğince 2 nin katlarıyla işlem yapmak. -Bir sayıyı 2 nin katlarına bölmek ya da çarpmak yerine sağa sola kaydırmak -Aynı işlemi yapan program parçalarını tek bir etiket altında toplamak. örn: 10 yerde delayms 10 kullanmak yerine, delayms 10 sağlayan tek bir etiketi gerekli yerlerde çağırmak. -alt alta if komutları kullanmaktan oldukça kaçınmak. vs vs...
Bu tür teknikler ile program boyutu oldukça küçültülebilir...Programı bunlara dikkat ederek yazdıysan 877 nin hafızasının dolacağını sanmıyorum..Hex dosyasının bilgisayardaki boyutu ile pic teki boyutu da farklı çıkıyor.Bu yüzden de yanılıyor olabilirsin..Programlayıcıya hex i verdiğin zaman kod hafızasının dolup dolmadığını kontrol edebilirsin..
hocam programda dediğiniz türden çapakların fazla miktarda oldugunu sanmıyorum tek fazlalık yapan if then ler onuda zaten bu çevirme için kullanmıştım bütün prog. sadece 2 tane pause kullanmışım ve bu çevirmeyi yapan if lerden hariç rakam ve noktalamalara gönderen if then ler var başka bir yerde yok
ödev ve başkasına yazdığım için şu an atamıyorum size pm atmaya çalıştım ama hata var diyor daha sonra tekrar denicem
pbp de bir program yazdım aslında bitirdim oldu çalışıyor ama ekleme yapacağım yapamıyorum çünkü program 11kb ta geldi
devrede ds1302 var bunun çıkışını lcd de lcdout $fe,$80,hex2 saat.... olarak okuyabiliyorum ama bunu matrixe yönlendirmek için mesela şöyle bir işlem yapmak zorunda kaldım
if saniye.4 = 1 then saniye = saniye - 6
if saniye.5 = 1 then saniye = saniye - 12
if (saniye.4 = 1) and (saniye.5 = 1) then saniye = saniye - 32
if saniye.6 = 1 then saniye = saniye - 24
bu burda kısa gibi görünüyor tabi ama saat dakika tarih vs ile hepsini yapınca (tarih kısmı bunun kadar uzun olmuyor) tabi prog. birazcık büyüdü aceba kısa bir yol varmıdır
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.