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 ===
...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 :)...
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ı.
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 :)...
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.
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...
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)
Teşekkürler M_B kardeş...
arkadaşlar jal de timer1 i nasıl çalıştıracagım? bilgisi olan varmı?çok acil..
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.