Olay anını hafızaya alma?

Başlatan F.T, 08 Şubat 2017, 22:35:18

F.T

Olay anında tarih ve saati hafızaya almak istiyorum.İlk olay tarih ve saati bir sonrakinde aşağı kayarak gidicek.En son noktada eski olay kaydı silinecek.500 adet kaydı bu şekilde hafızalamak istiyorum.Farklı 6 adet veri var ve bu her 1 veri için hafızalanacak.Bunların hafızlaanaması için ne kadar bir alan ihtiyacı oluşur?.Nassıl bir yöntem veya algoritma ile bu alanı azaltabilirim.Nasıl bir eeprom kullanmak lazım?

Şimdi her veri için 500 adet olacaksa 6 veri için 3000 adet olacak.
her veride tarih ve saat bilgisi olacaksa 3000x(saat 2 byte+tarih 3 byte=15000byte oluyor.Diye düşünüyorum.

Acaba yanlışmı düşünüyorum.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

OG

Alıntı YapNasıl bir eeprom kullanmak lazım?
Eeprom?

Bilgisayar / Donanım ve Yazılım
altına yazmışsınız?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mert3162

konunun yerine bakarak bende yorum yapamadım ama hocam bu kadar büyük bir logu ben olsam mmc kart üzerine yazmayı düşünürdüm 2 gb lik basit bir mmc karta bile dünyaları log olarak işleyebilirsiniz hemde eeproma bağlı kalmazsınız.
|^^^^^^^^^^^^\ ||\
|__PICPROJE.ORG __
||'""|""\___
| _____________ l | |__|__|___| )
(@!)!(@)"""""**|(@) (@)****|(@)---------

 Üstadlarım nonstradam & Logan

kantirici

  ay     - yıl   -  gün          saat   - dakika
1-12     16     1-31         0-23      1-59
4 bit    4 bit    5 bit         5 bit       6 bit

Toplamda 24 bit veri yapar. 24/8 = 3 byte veri. Yani her olay 3 byte ile kayıt altına alınabilir. Bu durumda 3*500 = 1500 byte veri yapar.  Tarih içine bir base   
tarih belirlenir ve işlem yapılırken bu tarih dikkate alınır. Mesela 2017 için yıl 0 olarak kayıt edilir işlem yapılırken 0 + 2017 işlemi yapılır.

F.T

#4
Kusura bakmayın sanırım dalgınlığıma geldi.Konu istenilen bir noktaya taşınabilir.

kantirici hocam merhaba.dediğiniz gibi bayağı bir alan kar ediyoruz çok güzel.Bu metodda kayıt okuma lcd ye  ayrıştırıp yazdırma ile ilgili zorluk olmazmı.
Ayrıca rtc olacağı için base tarihin bir artısı olurmu?
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Klein

typedef struct{
     uint32_t ay:4;
     uint32_t yil:4;
     uint32_t gun:5;
    uint32_t saat:5;
    uint32_t dakika:6;
    uint32_t log:8;
}logfmt;

bu şekilde bir struct ile kolyca ayırırsınız.

kullanırken
logfmt.saat = 23;
logfmt.dakika = 49; vs..

eeproma yazarken tek bir 32 bit değişkene almak için uint32_t degisken = *(uint32_t *)&logfmt;
eepromdan okuduğunuz 32 bitlik değişkeni yapıya atmak için de logfmt = *(logfmt *)&degisken;


mert3162

ufak bir hatırlatma uzun süreli bir sistem ise 4 yılda bir şubatın 29 çektiğini hesap etmeniz gerekebilir.
|^^^^^^^^^^^^\ ||\
|__PICPROJE.ORG __
||'""|""\___
| _____________ l | |__|__|___| )
(@!)!(@)"""""**|(@) (@)****|(@)---------

 Üstadlarım nonstradam & Logan

F.T

Hocam mesela ds1307 rtc içinde olmuyormu bu 4 yılda şubat günün 29 çekmesi. Ayrıyetten hesaplamak gerekirmi.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F.T

Alıntı yapılan: F.T - 09 Şubat 2017, 22:12:05
Hocam mesela ds1307 rtc içinde olmuyormu bu 4 yılda şubat günün 29 çekmesi. Ayrıyetten hesaplamak gerekirmi.
Alıntı yapılan: Klein - 09 Şubat 2017, 19:22:08
typedef struct{
     uint32_t ay:4;
     uint32_t yil:4;
     uint32_t gun:5;
    uint32_t saat:5;
    uint32_t dakika:6;
    uint32_t log:8;
}logfmt;

bu şekilde bir struct ile kolyca ayırırsınız.

kullanırken
logfmt.saat = 23;
logfmt.dakika = 49; vs..

eeproma yazarken tek bir 32 bit değişkene almak için uint32_t degisken = *(uint32_t *)&logfmt;
eepromdan okuduğunuz 32 bitlik değişkeni yapıya atmak için de logfmt = *(logfmt *)&degisken;



Hocam güzel yöntem değerlendiricem.Teşekkür ediyorum.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

kantirici

@F.T , @Klein hocam yapıyı vermiş, umarım soru işareti kalmamıştır.

Eğer sistemde hw RTC kullanıyorsanız tarih ile ilgili tüm işlemleri kendisi halleder. Yani şubat aynı v.s tekrar kontrolüne ve hesaplanmasına gerek yok.

F.T

Anlaşıldı hocam.Teşekkür ediyorum.İyi çalışmalar.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.