Rtc X1226

16-07-2015, 20:06 От: admin Посмотрели: 300
Всем привет. Есть данные часики. Хотелось бы  их подружить с мк arduino.  Сижу уже не первый день  и не  на  первом форуме задаю вопросы. Собственно есть даташит - прочитал, но ..... не выходит запустить данные часы. Вот код:  




//device isl1208 address 0x6F
#include <Wire.h>
#include <avr/interrupt.h>
byte seconds, hours, minutes, date, months, years, statusReg;
void setup () {
pinMode(5, INPUT);
digitalWrite(5,HIGH);
attachInterrupt(0, alarmTriggered, FALLING);
interrupts();
delay(50);
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(0x6F);
Wire.write(0x07); //status register
Wire.write(0x90); //
Wire.endTransmission();
readStatusReg(statusReg);
Serial.print(statusReg,HEX); //should be 144/0x90
Serial.println("h - status register");
/*
//alarm setup
Wire.beginTransmission(0x6F);
Wire.write(0x08); //alarm register
Wire.write(0xD0);
Wire.endTransmission();
Wire.beginTransmission(0x6F);
Wire.write(0x0c); //seconds alarm register
Wire.write(0xB0); //secs
Wire.endTransmission();
*/

/*
// set time
Wire.beginTransmission(0x6F);
Wire.write(0x00); //seconds register
Wire.write(decToBcd(30)); //secs
Wire.write(decToBcd(41)); //min
Wire.write(0xA3); //hour
Wire.write(decToBcd(03)); //date
Wire.write(decToBcd(8)); //month
Wire.write(decToBcd(13)); //year
Wire.endTransmission();
Wire.beginTransmission(0x6f);
Wire.write(0x07); //status reg addr
Wire.endTransmission();
Wire.requestFrom(0x6f,1); // now get the byte of data...
byte statusReg=Wire.read();
Serial.println(statusReg);
*/
}
void loop () {
Wire.beginTransmission(0x6f);
Wire.write(0x00); //status reg addr
Wire.endTransmission();
Wire.requestFrom(0x6f,6); // now get the byte of data...
seconds=Wire.read();
minutes=Wire.read();
hours=Wire.read();
date=Wire.read();
months=Wire.read();
years=Wire.read();
hours=hours & B01111111; // remove mil time bit
Serial.print(bcdToDec(hours));
Serial.print(':');
Serial.print(bcdToDec(minutes));
Serial.print('.');
Serial.print(bcdToDec(seconds));
Serial.print(' ');
Serial.print(bcdToDec(months));
Serial.print('/');
Serial.print(bcdToDec(date));
Serial.print('/');
Serial.println(bcdToDec(years));
delay(1000);
}
byte readStatusReg(byte val){
Wire.beginTransmission(0x6f);
Wire.write(0x07); // read status reg to clr bits
Wire.endTransmission();
Wire.requestFrom(0x6f,1); // now get the byte of data...
statusReg=Wire.read();
return(statusReg);
}

byte bcdToDec(byte val)
{
return ( (val/16*10) + (val%16) );
}
byte decToBcd(byte val)
{
return ( (val/10*16) + (val%10) );
}
void alarmTriggered()
{
Serial.println("** ALARM WENT OFF! **");
}





Код от похожий на мои часы  isl1208  - поменял регистры - не получается задать время. В консоли сплошные хаотичные цифры. Помогите подружить
Раздел: Периферия и внешние устройства

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Rtc X1226 все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
напишите: кузнечег
Ответ:*
Введите два слова, показанных на изображении:


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2018    »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031