avatar_ete

60 adet saniye Led i ile donatılmış dijital saat

Başlatan ete, 04 Eylül 2011, 10:50:34

F®T

hayır sn max 0-59 arası sayıyor.bu aradaki rakamları kullanmalısın.eğer sn 15 yerine 0 yaparsan sn her 0 oluşunda animasyon değişir dolayısı ile  dk bir animasyon değişir.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

xoom

o zaman 1dk daha fazla sürede animasyon değiştirmek için farklı bir komutu daha değiştirmem gerekiyor ama neresi ?

ete

1dk dan daha büyük sayılarda animasyon yapmak için dakika değişkenini kullanmalısın.
0-59 sn ye ye kadar işlerde SN değişkeni,
0-59 dak arası işlemlerde dak değişkeni ve
0-23 saat arası işlerde de saat değişkeni kullanılır.
Mesela her 15 dakkikada bir animasyon değişsin istiyor isen
IF DAK//15=0 then ....... şeklinde komut kullanılmalıdır. // işlemi mod alma işlemidir. Bir sayının diğer bir sayıya bölündüğünde kalanı verir. Dak değerini 15' böldüğünde kalan sıfır ise şeklinde bir anlama sahiptir bu komut.

Ete

xoom

öncelikle derecede problemi çözdüm 18b20 arızalanmış yenisini takınca düzeldi..

Açıklayıcı cvplar için çok tşk ederim.. bu picbasic CCS C den bana çok farklı geliyor..
bir soru daha sorucam.. Sıcaklık gösterilirken "C" işareti neden çıkmıyor ve aynı zamanda mesela 19.5C' şeklinde çıkmıyor..19 5' diye beliriyor.. Bunun yerine sıcaklık hassasiyetini 1 derece olaraknasıl ayarlarız buçulu değer göstermesin ve sonuç şöyle görünsün..
21 C'(tırnak yerine yarım sekiz işareti) bu değişiklliği nasıl yaparız?

ete

#109
XOOM,
C işareti çıkmasını istemediğimiz için çıkmıyor. Elimizde 4 adet display var. ve 2 display sıcaklık tam sayı kısmı için kullanılıyor. 1 display de ondalık kısmı için kullanılıyor kalan 1 adet ise derece işareti vermek için kullanıldı. İstersen sen derece işareti yerine "C" işaretini kullanabilirsin. Nasıl yapılacağını açıklarım.

Sistem ondalıklı sıcaklık gösterecek şekilde tasarlandı. Tabiiki ondalıksız gösterip onun yerine 21 oC şeklinde bir gösterim kullanmak mümkün aşağıda bunu açıklayacağım.

Sıcaklık hassasiyetini ayrıca 1 dereceye ayarlaman gerekmiyor. Sen tam sayı kısmını göster o gerekeni zaten yapacaktır.

Şimdi gelelim bahsi geçenlerin nasıl yapılacağına;
Önce derece işareti yerine C işareti nasıl çıkar onu anlatayım;
Aşağıdaki kod parçasını bulun. İlk satırda yer alan;
X=10:GOSUB AL:GOSUB AKTAR satırını;
X=11:GOSUB AL:GOSUB AKTAR şeklinde değiştirin. derece işareti yerine "C" işareti çıkacaktır.
EKRAN1:      
       X=10:GOSUB AL:GOSUB AKTAR
       if ESKI<>ISI THEN RETURN
       if SIGN="-"  then
         IF ISI<10 then           
            LOW PORTB.3
            x=(float DIG 0):GOSUB AL:GOSUB AKTAR
            X=fLOAT DIG 1:GOSUB al:SAYI=SAYI+128:GOSUB AKTAR
            SAYI=64:GOSUB AKTAR
            GOTO GIT
         ELSE
          HIGH PORTB.3
         ENDIF
       ENDIF       
       x=(float DIG 0):GOSUB AL:GOSUB AKTAR

       x=(FLOAT DIG 1):GOSUB AL:SAYI=SAYI+128
       GOSUB AKTAR
       x=fLOAT DIG 2:GOSUB AL
       IF ISI<10 THEN SAYI=0
       GOSUB AKTAR


Şimdi Ondalık kısmı nasıl atarız onu inceleyelim. Aynı kod parçası üzerinde çalışacağız yine;
Öncelikle oC işaretinin çıkması için
X=11:GOSUB AL:GOSUB AKTAR
X=10:GOSUB AL:GOSUB AKTAR
şeklinde bir satır daha ilave ediyoruz.
Daha sonra yapılacakları program satırları olarak vereyim en iyisi yoksa mesaj uzayacak.

X=11:GOSUB AL:GOSUB AKTAR
X=10:GOSUB AL:GOSUB AKTAR
       if ESKI<>ISI THEN RETURN
       if SIGN="-"  then
         IF ISI<10 then           
            LOW PORTB.3
            X=(float DIG 0):GOSUB AL:GOSUB AKTAR
             SAYI=64:GOSUB AKTAR
            GOTO GIT
         ELSE
          HIGH PORTB.3
         ENDIF
       ENDIF       
       X=(FLOAT DIG 0):GOSUB AL:GOSUB AKTAR         '  Sıcaklık birler hanesi
       X=(FLOAT DIG 1):GOSUB AL                                'Sıcaklık onlar hanesi
       IF ISI<10 THEN SAYI=0
       GOSUB AKTAR


Hepsi bu kadar.

Ete

xoom

#110
HOCAM BENDE Microcode programı bi şekilde temin edip derledim ama derece C işareti güzel belirdi fakat ledler otomatik animasyon falan başlamadı..hiç çalışmadı.. sadece saat derece çıktı
- bana 1dk bir değişen ve 19oC işaretli bir derleme yapabilirmisiniz

ete

Neye göre derleme yapacağım?
- Yalnızca derece işartei yerine C gösterecek şekildemi?
- Sıcaklık ondalık göstermeyecek şekildemi
- alternatifleri çoğaltabiliirim.
En iyisi sen şöyle yap;

Aşağıdaki satırı bul ve açıkladığım şekilde düzelt.
       IF SN//15=0 then        'otomatik animasyon değiştirme her 15 sn de bir
         ANIM=ANIM+1
         IF ANIM=3 then ANIM=0
         YENI=1
       ENDIF
Aşağıdaki şekilde düzelt
       IF SN//59=0 then        'otomatik animasyon değiştirme her 60 sn de bir
         ANIM=ANIM+1
         IF ANIM=3 then ANIM=0
         YENI=1
       ENDIF


Ete

xoom

hocam bıktırdım biliyorum ama söylediğinizi yapıyorum 85oC çıkıyor displaylerde saat gözüküyor fakat ledler animasyona başlamıyor.. ya benim microcode programım derleme yapmıyor yada bi gariplik var..önceki 15 saniye olanda problem yok çalışyor derece ondalıklı çıkıyor..ama benim istediğim şu:
hocam son olarak bana animasyonların 1dk da bir değiştiği ve 19oC şeklinde sıcaklığın değiştiği hex'i verirseniz çok sevap işlemiş olucaksınız..

ete

Program ilişiktedir.
Simulasyonda denedim çalışıyor. Umarım sende de çalışır.
Ete

xoom

#114
Hocam tşk ederim fakat devre kararlı çalışmıyor...saati çalıştırınca ledler dolarak yanıyor 60.saniyede 2.ye geçiyor tekrar 60 olunca 3.animasyona geçiyor ve 3. animasyonda işler değişiyor 3.animasyon 60 saniye boyunca devam etmiyor..bazen 40.saniyede bazen 20.saniyede 1.animasyona geçiş yapıyor.. animasyonu bi 3 dakika izlermisiniz.. sanırım 3. animasyonda problem var 1. ve 2. animasyonlarda 1dk bekliyor fakat 3. animasyonda 1dk durmuyor..

ete

üçüncü animasyonda bir terslik var. terslik bütün ledlerin 1sn içinde yakılma zorunluluğundan kaynaklanıyor.
Bu tersliğin diğer şeklinde de olduğunu sanıyorum.
Ancak normal devrede sorunsuz çalışacağını düşünüyordum.
Normalde de böyle çalışıyor ise yapacak tek şey çalışma frekansını artırmak olacaktır. Başkada çare göremiyorum.
Ama diğer iki animasyonda sorun yok gözüküyor. Zira simulasyonda sıcaklık okumak epeyce kasıyor makinayı. Onun yerine sabit sıcaklık değeri veriyorum (sensör okuma başındaki kapalı satırı açarsan görürsün) o zaman her şey normal çalışıyor.

Durum böyle
Ete

xoom

3.animasyonda en güzel animasyon.. vazgeçemiyor insan..şimdi 3.animasyonu kullanamıyormuyuz sonucuna varmak gerekiyor? manuel modda da çalıştırsak 3. animasyon ve sıcaklık çalışmayacak mı demek oluyor?

ete

#117
Henüz son sözü söylemedim. Programın o kısmına bakıyorum ne yaparız diye.
Birazdan söylerim.

Ete

Edit:  Programda bir gecikme döngüsü kullanmışım. 0-400 arası sayıyor. Sanırım bu fazla geliyor. Daha azıda ledlerin parlaklığını yanık kalma süresini etkileyecek. Alsında elimde saat devresi olsa idi kolaylıkla hallederdim bu sorunu. Bu nedenle bazı denemeler yapabilecek ve elinde gerçek saat devresi olan birisine ihtiyacım var? Xoom sende olması gerek bildiğim kadar.
Ne dersin yapabilirmisin söyleyeceklerimi. Programda 0-400 arasındaki o döngüyü sorunsuz çalışabileceği bir miktara indireceğiz hepsi bu kadar. 0-350 deneyeceğiz, olmadı 0-300 olmasdı 0-200 . Şu anda 0-200 yapıyorum simulasyondaki o aptallık gitti düzeldi. Ama gerçekte daha uygun bir rakam isteyebilir.

xoom

ben zaten özelinize video bıraktım..direk gerçek devre üzerinde deniyorum.. bana hex'leri verin sırasıyla deneyelim.

ete

Videoya bakamadım .Hata veriyor. Dosyayı yükleyemedim.
İlişikte 4 adet program var.
_00 uzantılı olan hiç gecikme olmadan çalışan
_50 uzantılı 0-50 arası döngü ile gecikme verilen,
_100 uzantılı 0-100 arası gecikme
_150  uzantışı 0-150 arası döngü gecikmesi ile çalışan programa aittir.
hepsini de bir dene bakalım. Nasıl sonuçlar verecek merak ediyorum.

Ete

Powered by EzPortal