Prescaler

Başlatan cyberlight, 26 Aralık 2002, 21:56:25

Erol YILMAZ

Selam;
Ne demek istedigini anliyorum. Hassas zamanlar ozellikle elektrige bagli olarak senelerini gecirmesi gerekiyorsa hastalık gibi bir sey. Hic bir zaman emin olamayacagin o kadar cok sey var ki? Dedigin gibi biz de zaten bu tarz seylerle ugrasmiyoruz. Ama dedigin gibi ben de 3.2768 MHZ kristal kullaniyorum. Ve saat icin cok uygun oldugunu dusunuyorum. Zaten piyasadaki saatleri incelersen onlarda genelde gunluk 1-2 sn'lik hatalara goz yumuyor. Daha fazlasini aramamak lazim gibi gorunuyor. Soyle de bir konu var. gunluk 1 sn hata yıllık 360 sn/ yani 6 dk'lık hataya sebebiyet verecek. Bu bana cok gorunuyor. Sence?

mhk

Bence yılda 6 dakika hiçte öenmsenmeyecek bir rakam. Bunu samimiyetimler yazıyorum. hele 6 ayda bir saatlerin geri ve ileri alındığını düşünürsen zaten bir ayar geçirecektir. Diğer bir konu piyasada real time clock diye satılan chiplerle çalıştım. Onlar bile günde 2 sn kadar hata yapıyorlar. Bu tip real time clocklar endüstride kullanılıyor. Senin dediğin 6 dakika 10 senede 60 dakika yapar. Söylermisin bana 10 yılda kaç tane saat sadece 1 saat hata yapar. 3.2768 Mhz. kristal kullanıyoruz lakin keme gecikmelerini kesme alt programındaki geceikmeleri vs vs. bunların hepsini hesaplasak bile gözden kaçıracağımız mutlaka bir nokta olacaktır. Günde 1 sn. kabul edilebilir bence. Gerçi ben diğer kristallerle de bunu başardım. Örneğin 4 Mhz. 10 Mhz. 20 Mhz.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

Erol YILMAZ

Selam;
Mesajın anlaşıldı. Bu iş olur yani. Problem yok.
Ben de baştan 4.096 Mhz ile uğraştım. Microchip'in AN'larından. Baktım o da pek hos değil. daha sonra 3.2768'i keşfettim. Gayet guzel bir çözüm saat için. 4.000 Mhz'lik kristal ile yapmak için kasacaktim. Ama fazla şoparlık olacağını düşündüğüm için vazgeçtim. Üstüne alınma sadece kişisel bir düşünce işte :) Kolay Gelsin. Ama bir okul saati gördüm. Açıkçası uyuz oldum. Üzerinde neredeyse pic ve 4 * 7 segment display disinda bir sey yok. Ufak bir şey. Daha sonra fotoğrafını gönderirim. Saat'i hesaplamak için 32768 hz saat kristali kullanmiş. Tabi normal hesapları internal 4 mhz rc osi. hallediyor. Entegrenin üzeri silikti fakat 16F628 olduğu her halinden belliydi. Kolay Gelsin...

mhk

Benim yaptığım okul saati sanırım senin anlattığına göre biraz daha profesyonelce. Aslında ticari amaçlı yapmamıştım lakin bittikten sonra herkes bunun ticari bir ürün olduğunu söylediler. 2 tanede sattım :) Biraz özelliklerinden bahsedeyim; 2x16 LCD saat tarih ve gün hesaplamaları mevcut. Ders zili ve teneffüs arası müzik için çıkış verebiliyor ( Bizim okulda yaptığım teneffüslerde müzik yayını yapıyor). Elektrik kesildiğinde dahi zili çalabilme,Zil müzik açma kapatma , aslında tasarımda tamamen amatör kullanıcılara yönelik düşündüm. Yani kullanıcı fazla uğraşmadan işin tamamını cpu ya yaptırarak. Örneğin kullanıcı toplam 4 tane butonla tüm ayarları gerçekleştirebiliyor. Biraz da abarttım galiba menü ve wizardlar ekledim. Yani haftalık ders ayarları otomatik olarak hesaplanıp hafısaya alınıyor.Daha bir çok özelliği var. Bunu yazdım çünkü bu işe ilk başladığımda amacım okul saati yapmak değildi. Hani derler ya araştırmalar ihtiyaçtan doğar diye, bizim öğrenciler tutturdular teneffüslerde müzik dinlemek istiyoruz diye , mevcut programlı saate bir devre yapmak istedik ama baktık ki bu saati açtğımızda toplamak daha zor olacak bizde oturduk tasarladık ve ürün çıktı. Nerdeyse 1,5 sene olacak çok şükür problem yok. Yani bir ihtiyaç ortaya bir ürün çıkmasına neden oldu. Bu günlerde atmel serisi mikrokontrole merak sardım daha yeni başladım, programlayıcı şeması arıyorum. Bir tane yapıp baskılı devresini çıkardım bakalım çalışacakmı ? Kendinize çok iyi bakın.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

PicProje

@mhk

Saat olayını iyi çözümlemişsin bu konuyu takip ettiğim kadarıyla tebrikler ortaya güzel bir çalışma çıkmış ticari amacın olmasa bir incelek isterdim yaptığın ürünü mümkünse ama saklamak istersen anlayışla karşılarım
başarılarının devamını dilerim
İzindeyiz Ulu önder Mustafa Kemal ATATÜRK

cyberlight

mhk :
4 butonla saat ve tarih ayarını nasıl gerçekleştirebiliyosunuz?
Saat ve takvim ayarını sadece + yönde mi yaptırıyosunuz?
Benim yazdığım takvim +saat +alarm programı için 4 tane  basıp bırakmalı 2 tanede  basıldığında on veya off durumunda sabit kalan buton gerekiyo.
Ptoteusta similasyon yaptıysanız LCD nin görüntüsünü yollayabilirmisiniz.

mhk

Aslında size proteus ta simülasyon şeklinide göndermek isterdim lakin hala burada resim nasıl gönderilir bulamadım. Yardımcı olursanız sevinirim. 4 butonla sadece saat tarih zil ders ayarları değil bir çok ayarları gerçekleştirebiliyorum. Mantığı zor değil. Örneğin baştaki ve sondaki butonların her ikisine birden 2 sn. basılı tuttuğumda saat ayar menüsüne geçiyorum. 1. buton artırma 2. butoz azaltma 3.buton ok 4.buton esc. burda saat ayarını yapıyorum 1.ve 2. butonlarla , ok tuşuna bastığımda bu sefer dakika artırma azaltma , tekrar ok saniye tarih vs. gibi . Ortadaki iki butona basıp yaklaşık 2 sn beklediğimde ders ayar menüsüne geçip ayarları yapıyorum. İşin aslı alt menülerle bu iş çok rahat çözülür.[/code][/quote]
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

cyberlight

Hımmm , anladım sağolun.Olaya tamamen farklı yaklaşmışız.
Bende resim nasıl eklenir bilmiyorum, biri anlatırsa iyi olur.

00050319

arkadaslar,9999 sayıcı diye bir baslık açmıştım,ileri pic uygulamaları kitabındaki uygulama için.Cvb alamadım bir türlü.Tam

olarak sizlere sormak istediğim olay şu:(tmr0 ve prescaler ile ilgili yazıları okudum tamamen sitedeki)
1-)Assemblyde programı yazdım,bu programda 4 adet displayde 0000dan itibaren

saydırıcam.osilatör frekansı 4 mhz ve 61 kere kesme olması sonucunda yaklaşık 1 snlik gecikme sağlanıyor.Bunu herkes benden bin kat iyi biliyor.
2-)timer alt programı şu şekilde yazılmış:
 

 
            BCF INTCON,TOIF
            INCF SN
            MOVLW .61
            SUBWF SN,W
            BTFSS STATUS,Z
            GOTO $+3
            CLRF

SN
            INCF SAYI
            RETFIE
şimdi anlamadığım konu, programın hiçbir yerinde tmr set edilmemiş,tmr0,kendisine veri yazımasından sonra saymaya başlamaz

mı?
kesme olduğunda alt programa gidip yukarıdaki komutlar icra edildiğinden 1 snden sonra da usler bazında süreler,ben bu artan sayıyı displaylere gönderene kadar,geçmez mi?
mesela

20 sn program başka işeri yaparken,20 sn sonra bir iş yapmak için james arkadaşımız bu kodu yazmış:  
             option_reg=$55
             intcon=$a0
             on interrupt goto

kesme
              ...
              ..
              ...
              kesme:sayac=sayac+1
              if sayac<61 then cık
              sayac=0
              saniye =saniye+1
 

            if saniye=20 then (gitmek istediğin adres)
              cık:intcon.2=0
              resume
Şimdi bu kodda 1.kesme geldi,sayaç 1 arttı,if komutuna baktı, burda 1 us geçti,ben bunu

61 kere kontrol ettiriyorum 1 sn için, e 20 snlik olayı beklerken if komutu nedeniye gene belli bir süre geçmez mi?Şu olayı bir tam olarak açıklasanız?(tmr nasıl set ediliyor,nasıl arka planda sayıyor

vb... :oops:  :oops:  :oops: )
Çok hoşuma giden bir söz:
Arap atasözü der hoca:"YEMEDİĞİN HURMALAR,BİR GÜN GELİR TIRMALAR"
Ahmak odur ki arzu ve isteklerinin peşinden koşar, Allah'tan da bekler.(Hadis-i Şerif)