Часы и COM порт
- Войдите на сайт для отправки комментариев
Втр, 31/03/2015 - 17:08
Здравствуйте форумчане! Хотел бы с Вами посоветоваться на счет настройки часов через Serial.port не используя кнопки. Возможно ли это и как это риалезовать?
Данный код Товарища LEVV2006 идельно подходит для меня не вызывая багов.
#include "Wire.h" #define DS1307_I2C_ADDRESS 0x68 byte decToBcd(byte val) { return ( (val/10*16) + (val%10) ); } byte bcdToDec(byte val) { return ( (val/16*10) + (val%16) ); } void setDateDs1307(byte second, // 0-59 byte minute, // 0-59 byte hour) // 0-99 { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(0); Wire.write(decToBcd(second)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); Wire.endTransmission(); } void getDateDs1307(byte *second, byte *minute, byte *hour) { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(0); Wire.endTransmission(); Wire.requestFrom(DS1307_I2C_ADDRESS, 3); *second = bcdToDec(Wire.read()); *minute = bcdToDec(Wire.read()); *hour = bcdToDec(Wire.read()); } void setup() { byte second, minute, hour; Wire.begin(); Serial.begin(9600); second = 45; minute = 3; hour = 7; setDateDs1307(second, minute, hour); } void loop() { byte second, minute, hour; getDateDs1307(&second, &minute, &hour); Serial.print(hour, DEC); Serial.print(":"); Serial.print(minute, DEC); Serial.print(":"); Serial.println(second, DEC); delay(1000); }
В данном участке есть настройка в режиме Setup где можно установить время. Можно это завести в функцию и вызывать если это нужно но уже с настройкой времени через ком порт.
byte second, minute, hour; Wire.begin(); Serial.begin(9600); second = 45; minute = 3; hour = 7; setDateDs1307(second, minute, hour);
Как это реализовать дайте хоть малое преставление.
Спасибо!
Втр, 31/03/2015 - 17:10
#1