На данный момент меня интересует программый доступ к м/с в среде CodeVision AVR на примерах (тоесть примеры кодов программ установки времени/даты, считывание)
P.S. Спасибо за внимание, надеюсь на ваше активное участие!
Fasterpast писал(а):Хм, а F1 в CvAVR чем не устраивает?
Код: Выделить всё
void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
this function sets the current time of the RTC.
The hour, min and sec parameters represent the values of hour, minutes and seconds.
void rtc_get_date(unsigned char *date, unsigned char *month, unsigned char *year)
this function returns the current date measured by the RTC.
The *date, *month and *year pointers must point to the variables that must receive the values of date, month and year.
void rtc_set_date(unsigned char date, unsigned char month, unsigned char year)
this function sets the current date of the RTC.
Код: Выделить всё
#include <tiny2313.h>
#asm
.equ __i2c_port=0x12 // подключил к порту PORTD
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <i2c.h>
#include <ds1307.h>
void main (void)
{
unsigned char lcddate, lcdmonth, lcdyear; // объявление переменных даты
unsigned char lcdhour, lcdminute, lcdsecond; // объявление переменных время
i2c_init();
rtc_init (0,1,0); // инициализация часов, непонял о чём говорят значения в скобках?
rtc_get_date (&lcddate, &lcdmonth, &lcdyear); // читаем дату
rtc_get_time (&lcdhour, &lcdminute, &lcdsecond); // читаем время
}
ответ здесь http://piclist.ru/D-DS-DS1307-RUS/D-DS-DS1307-RUS.htmlSounds писал(а):Для каких целей нужен вывод SQW/OUT?
Sounds писал(а):Подскажите как написать функцию считывания в переменную дня недели?
Код: Выделить всё
day = rtc_read(0x03); // чтение
rtc_write(0x03, day); // записьдля контроля частоты например. Или скажем Вы собрали устройство у которого очень важно чтобы часы шли, а как определить работает ли генератор в часах т.е. попросту идут часы или стоят ?Sounds писал(а):я так и не понял для чего нужен вывод SQW/OUT?
Sounds писал(а):Может я тупой, но я так и не понял для чего нужен вывод SQW/OUT?
Код: Выделить всё
// в данной версии данные хранятся не в двоичной, а в двоично-десятичной системе
unsigned char
myhour, mymin, mysec, // текушее время
mydate, mymonth, myyear, // текущий календарь
myday; // день недели
// ---------- вычислить день недели по дате ----------
void date2day(void) {
unsigned int y, m;
y = bcd2bin(myyear);
m = bcd2bin(mymonth);
if (m > 2) { m -= 2; }
else { m += 10; y--; }
myday = (unsigned char)((bcd2bin(mydate) + y + (y>>2) + ((31 * m) / 12)) % 7);
if (myday == 0) myday = 7;
}//----------