Arduino Kaldığı yerden devam etme

Kodun tamamını paylaşamıyorum maalesef ama ram kısmına okuma ve yazma işlemi için küçük bir kod paylaşabilirim. DS1302 kitaplığını kurmayı unutma ve ram hücresine sadece 8 bitlik yani 0-255 arası sayılar kaydedilebileceğini aklında tut. Daha büyük veriler için bit işlemi yaparak ayırman gerekiyor. Aşağıdaki örnekte ssayının her saniye ramin sıfırıncı hücresine kaydedilip her açılışta oradan okunarak başladığını göreceksin. 0-63 arası hücreleri kullanabilirsin. İlk başlamada ramin o hücresi daha önce ayarlanmadığı için saçma bir sayıdan başlayabilir. Kolay gelsin.

C++:
#include <DS1302.h>
DS1302_RAM ramBuffer;
DS1302 rtc(10,11,12);    //RST->10,DA->11,CLK->12
uint8_t saniye = 0;

void setup(){
    Serial.begin(115200);
    if (!rtc.begin())
        Serial.println("Saat modülüne erişilemiyor");
   
    ramBuffer=rtc.readBuffer();
    saniye = ramBuffer.cell[0];
}

void loop(){
    Serial.println(saniye);
    ramBuffer.cell[0]= ++saniye;
    rtc.writeBuffer(ramBuffer);
    delay(1000);
}
Çok teşekkür ederim hocam tam olarak istediğim buydu kolay gelsin hayırlı akşamlarınız olsun
 

Forum istatistikleri

Konular
129,834
Mesajlar
930,598
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Geri
Üst