Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => JAL => Konuyu başlatan: Breko - 06 Eylül 2008, 13:46:47

Başlık: Sayıcı yardım
Gönderen: Breko - 06 Eylül 2008, 13:46:47
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 ===
Başlık: Sayıcı yardım
Gönderen: TURKSofTURKEY - 06 Eylül 2008, 13:56:02
...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 :)...
Başlık: Sayıcı yardım
Gönderen: M_B - 06 Eylül 2008, 14:03:49
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ı.
Başlık: Sayıcı yardım
Gönderen: TURKSofTURKEY - 06 Eylül 2008, 14:12:31
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 :)...
Başlık: Sayıcı yardım
Gönderen: POWER - 06 Eylül 2008, 17:44:34
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.
Başlık: Sayıcı yardım
Gönderen: Breko - 08 Eylül 2008, 14:59:11
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...
Başlık: Sayıcı yardım
Gönderen: M_B - 08 Eylül 2008, 15:21:06
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)
Başlık: Sayıcı yardım
Gönderen: Breko - 08 Eylül 2008, 15:26:19
Teşekkürler M_B kardeş...
Başlık: Ynt: Sayıcı yardım
Gönderen: ferhat.aksu - 05 Nisan 2010, 16:54:01
arkadaşlar jal de timer1 i nasıl çalıştıracagım? bilgisi olan varmı?çok acil..
Başlık: Ynt: Sayıcı yardım
Gönderen: mustafacan - 05 Nisan 2010, 23:00:35
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.