• Авторизация


ds1307, или часы нереального времени 17-12-2013 23:25 к комментариям - к полной версии - понравилось!


Заработали часики. В общем почти все примеры по этой штуке - фигня, не работают. Не собираются. В итоге рабочий скетч он вот такой:

(здесь я только добавил три строчки в сетюп, и оно заработало)



#include \

int hour;
int minute;
int second;
int month;
int day_of_week;
int day;
int year;

char* dow[7] = {\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"};

void setup()
{
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(104); // transmit to device #104, the ds 1307
Wire.write(0x00);
Wire.endTransmission();

}

void loop()
{
// Below required to reset the register address to 0.
Wire.beginTransmission(104); // transmit to device #104, the ds 1307
Wire.write(0x00);
Wire.endTransmission(); // stop transmitting

Wire.requestFrom(104, 7); // request 7 bytes from slave ds1307, we'll assume it'll write them all even though it doesn't have to
second = Wire.read();
minute = Wire.read();
hour = Wire.read();
day_of_week=Wire.read();
day = Wire.read();
month = Wire.read();
year = Wire.read();

// Convert all the BCD values that might have \"tens\" to decimal. Most arduino folks do this w/shifts but this just looks easier to me.
hour=hour/16 * 10 + hour % 16;
minute=minute/16 * 10 + minute % 16;
second=second/16 * 10 + second % 16;
day=day/16 * 10 + day % 16;
month=month/16 * 10 + month % 16;
year=2000 + year/16 * 10 + year % 16;

Serial.print(hour);
Serial.print(\":\");
if (minute < 10) { Serial.print(\"0\"); }
Serial.print(minute);
Serial.print(\":\");
if (second < 10) { Serial.print(\"0\"); }
Serial.print(second);
Serial.print(\" \");
Serial.print(dow[day_of_week-1]); // array is 0-6, but the dow register holds 1-7, so subtract 1.
Serial.print(\", \");
Serial.print(month);
Serial.print(\"/\");
Serial.print(day);
Serial.print(\"/\");
Serial.print(year);
Serial.print(\"\\n\");
delay(1000);
}
[700x393]
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник ds1307, или часы нереального времени | Affrikan - Дневник Affrikan | Лента друзей Affrikan / Полная версия Добавить в друзья Страницы: раньше»