Sayıcı yardım

Başlatan Breko, 06 Eylül 2008, 13:46:47

Breko

Arkadaşlar bir sayıcı yaptım, her şey normal fakat elektrik kesilip geldiğinde sayıcı sıfırdan başlıyor.Elektrik hangi sayıda iken kesildi ise, o sayıdan devam etmesini istiyorum.Şimdiden yardımlarınız için teşekkürler.

-- ============================================
include 16f628_4i -- 4MHz dahili osilator
include jlib
include hd447804  -- hd447804 kütüphanesi kullanılacak
include comp      -- 16f628 icin analog
                 -- karsilastiricilerin kapatilmasi
-- === PORTLARIN YONLENDIRILMESI ===
disable_comp      -- analog karsilastiricilar kapatildi
-- === DEGISKENLER ===
var byte saymaya1 = 0
var byte saymaya2 = 0
var byte saymaya3 = 0
var byte saymaya4 = 0
var byte saymaya5 = 0
var byte saymaya6 = 0
var byte saymaya7 = 0
-- === AYARLAMALAR ===
option = 0b10111000
tmr0 = 0
hd44780_clear
-- === ALT PROGRAMLAR ===
procedure sayici is
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = " "
hd44780 = " "
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
hd44780 = "x"
end procedure
-- === PROGRAM BASLANGICI ===
forever loop
if tmr0 > 9 then  -- eger tmr0 9'dan buyukse
   saymaya2 = saymaya2 + 1
   if saymaya2 == 10 then
    saymaya2 = 0
    saymaya3 = saymaya3 + 1
    if saymaya3 == 10 then
     saymaya3 = 0
     saymaya4 = saymaya4 + 1
     if saymaya4 == 10 then
      saymaya4 = 0
      saymaya5 = saymaya5 + 1
      if saymaya5 == 10 then
       saymaya5 = 0
       saymaya6 = saymaya6 + 1
       if saymaya6 == 10 then
        saymaya6 = 0
        saymaya7 = saymaya7 + 1
        if saymaya7 == 10 then
        saymaya7 = 0
        end if
       end if
      end if
     end if
    end if
   end if
tmr0 = 0 -- 0 yap seklinde tmr0 sayıcısı kosullandi
end if
saymaya1 = tmr0
  hd44780_line1
  sayici -- sayici alt programi cagrildi
  hd44780_line2
  print_decimal_1 ( hd44780, saymaya7, "0" )
  print_decimal_1 ( hd44780, saymaya6, "0" )
  print_decimal_1 ( hd44780, saymaya5, "0" )
  print_decimal_1 ( hd44780, saymaya4, "0" )
  print_decimal_1 ( hd44780, saymaya3, "0" )
  print_decimal_1 ( hd44780, saymaya2, "0" )
  print_decimal_1 ( hd44780, saymaya1, "0" )
end loop
-- === PROGRAM SONU ===

TURKSofTURKEY

...En Basitinden, Sayıları Sayarken, Her Ekrana Yazdıracağın Zaman Aynı Zaman da EEPROM'a da Yazdır...
...Ve Sayıcı Programının En Başına da Bir Kontrol Bloğu Koy...
...Her Başlangıçta EEPROM'un O Bölgesini Kontrol Edip, Oku...
...Okuduğun Sayıyı da Referans Sayısı Yap...
...Başka Çözümler de Olabilir Elbet Ama Benim İlk Aklıma Bu Geldi :)...
Gönül'ü Sözle, Sevgi'yi Saygıyla, Aşk'ı Sâdakâtla, Dost'u Güvenle, Para'yı Azimle Elde Et!  Vatan'a Millet, Millet'e Bayrak, Bayrak'a Kan, Kan'a Can, Can'a Canan Gerek!  Lütfen Türkçemizi Düzgün Kullanalım!

M_B

https://www.picproje.org/main/modules.php?name=Forums&file=viewtopic&p=145803#145803
linkteli  gun_sayıcı dosyayı ındır ıncele. Bir fikir verecektır.
Kolay gelsın.




@TURKSofTURKEY arkadasın dedigi gibi olay eeproma kaydetme olayı.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

TURKSofTURKEY

Alıntı yapılan: "M_B"https://www.picproje.org/main/modules.php?name=Forums&file=viewtopic&p=145803#145803
linkteli  gun_sayıcı dosyayı ındır ıncele. Bir fikir verecektır.
Kolay gelsın.




@TURKSofTURKEY arkadasın dedigi gibi olay eeproma kaydetme olayı.

...Verdiğiniz Örneği İnceledim...
...Güzel ve Kullanışlı Bir Örnek, Teşekkürler...
...Ama Saat ve Tarih İşlemlerinde Kesinlikle Harici DS1307 Entegresi Kullanılmasını Tavsiye Ederim...
...Çok Daha Sağlıklı Oluyor...
...Ama İşlem Yukarıdaki Gibi Basit Bir Şeyse Tabiki Dahili EEPROM Kullanımı Daha Mantıklıdır :)...
Gönül'ü Sözle, Sevgi'yi Saygıyla, Aşk'ı Sâdakâtla, Dost'u Güvenle, Para'yı Azimle Elde Et!  Vatan'a Millet, Millet'e Bayrak, Bayrak'a Kan, Kan'a Can, Can'a Canan Gerek!  Lütfen Türkçemizi Düzgün Kullanalım!

POWER

yada elektrik kesintisini kullandığın devrenin  hissetmemesi için batarya grubu kullanabilirsin,arkadaşların çözümleride ayrı bir yol tabiki seçim sana kalıyor.
TB6BKG

Breko

fikirlerinize çok teşekkür ederim arkadaşlar.Ben bu konularda yeniyim, onun için yazılımı komple verdim ve nereye hangi komutlar yazılacak belki bir arkadaş yazar diye.Yine de yardımlarınız için teşekkürler...

M_B

Merhaba
Jal da eeproma yazma komutu

eeprom_put(adres,veri)
ornek:
eeprom_put(1,sayici)


okuma komutu ise

eeprom_get(adres,veri)

ornek:
eeprom_get(1,sayici)
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Breko

Teşekkürler M_B kardeş...

ferhat.aksu

arkadaşlar jal de timer1 i nasıl çalıştıracagım? bilgisi olan varmı?çok acil..

mustafacan

#9
elektiriğin kesildiğini pinin birinden algılamak ve dahili harici eproma yazmak en mantıklısı ben böyle uygulamıştım.
4 yıldırda çalışıyor sistem.
yoksa eepromun belli bir kayıtan sonra yazma silme durumu olmaz ve ortada kalırsınız.
epromların yazma silme sayıları işlemcilere epromlara  göre ve orjinal patates olmalarına göre değişiyor.
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!