hi, simply, i need to spam
``
byte sec = RTCread(0x81);
RTCwrite(0x80, sec & 0x7F);
to make sure my DS1302 working, if i not spam it in loop, my ds1030 did not work. i expect this as bug, here is my code
``
#include <Arduino.h>
int RTCrstPin = 2;int RTCclkPin = 4;int RTCdatPin = 3;
void RTCwrite(byte address, byte data) {
address |= 0x01;
Serial.println("writing with address: " + String(address, BIN) + " And Value: " + String(data, BIN));
digitalWrite(RTCrstPin, HIGH);
pinMode(RTCdatPin, OUTPUT);
for (int i = 0; i < 8; i++) {
digitalWrite(RTCdatPin, address & 0x01);
digitalWrite(RTCclkPin, HIGH);
delayMicroseconds(5);
if(i < 7) digitalWrite(RTCclkPin, LOW);
address >>= 1;
delayMicroseconds(5);
}
digitalWrite(RTCclkPin, LOW);
for (int i = 0; i < 8; i++) {
digitalWrite(RTCdatPin, data & 0x01);
digitalWrite(RTCclkPin, HIGH);
delayMicroseconds(5);
digitalWrite(RTCclkPin, LOW);
data >>= 1;
delayMicroseconds(5);
}
delayMicroseconds(5);
digitalWrite(RTCrstPin, LOW);
}
byte RTCread(byte address) {
byte result = 0;
address |= 0x81;
pinMode(RTCdatPin, OUTPUT);
digitalWrite(RTCrstPin, HIGH);
for (int i = 0; i < 8; i++) {
digitalWrite(RTCdatPin, address & 0x01);
digitalWrite(RTCclkPin, HIGH);
delayMicroseconds(5);
if(i < 7) digitalWrite(RTCclkPin, LOW);
address >>= 1;
delayMicroseconds(5);
}
digitalWrite(RTCclkPin, HIGH);
pinMode(RTCdatPin, INPUT);
for (int i = 0; i < 8; i++) {
digitalWrite(RTCclkPin, LOW);
if(digitalRead(RTCdatPin) == HIGH) result |= (0x1 << i);
digitalWrite(RTCclkPin, HIGH);
}
digitalWrite(RTCrstPin, LOW);
return result;
}
void setup() {
pinMode(RTCrstPin, OUTPUT);pinMode(RTCclkPin, OUTPUT);pinMode(RTCdatPin, OUTPUT);
Serial.begin(250000);
RTCwrite(0x8E, 0x00);
RTCwrite(0x80, 0x45 & 0x7F);
delay(100);
RTCread(0x81);
}
void loop() {
byte sec = RTCread(0x81); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
RTCwrite(0x80, sec & 0x7F); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.println(sec, HEX);
delay(1000);
}
i think this as a bug and wanna asking why is that happening? if that is how this work sorry for make useless topic, i wanna ask, is this a bug or not?.