Страница 1 из 2
Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 09:33:03
Andrew_7
Здравствуйте уважаемые форумчане! Мяу! Я впервые сталкиваюсь с RTC микросхемами. В частности столкнулся с PCF8583. Я никак немогу разобраться, как считать информацию о времени и дате с PCF8583 в переменную, чтоб затем вывести её на дисплей. Для считывания использую Atmeg32. Искал в инете примеры кодов, почти ничего не нашёл.. Помогите пожалуйста!

Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 11:22:34
Danko
Язык ?
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 13:04:11
Andrew_7
Си
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 13:09:40
Danko
в CVAVR есть готовая библиотека.
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 13:33:39
Andrew_7
А как эта библиотечка называется? Не подскажите? Я смотрел, что - то не нашёл.. Есть I2C библиотека, которую я видел..
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 13:44:28
evgeniy66
Andrew_7 писал(а):А как эта библиотечка называется? Не подскажите? Я смотрел, что - то не нашёл.. Есть I2C библиотека, которую я видел..
Вот если это библиотеку активировать, то там станут видны дополнительные закладки, где есть и Ваша микросхема.
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 14:23:08
Andrew_7
Как опросить микруху я понимаю, возможно я неправильно выразился, прошу прощения за это.. Я не могу разобраться, как данные принятые от неё, вывести на дисрлей..
Приведу часть кода подпрограммы:
lcd_clear();
// Place your code here
i2c_start();
i2c_read(0);
rtc_get_time(0, &Hour, &Mins, &Sec, &Set_Msec);
rtc_get_date(0, &Day, &Mon, &Year);
i2c_stop();
};
Инициализация i2c проходит выше, этот кусок программы я просто не вставил. Вопрос в том, как полученные данные от часов, содержащихся в rtc_get_time вывести на дисплей? Я так понимаю надо сделать какое - то преобразование данных в char?
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 14:35:25
Danko
Andrew_7 писал(а): i2c_start();
i2c_read(0);
};
Andrew_7 писал(а): i2c_stop(0);
это находится внутри библиотеки и вам его трогать
не нужно.откройте папку
examples, где найдете примеры работы с LCD да и RTC тоже.
Andrew_7 писал(а):Как опросить микруху я понимаю
похоже не совсем
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 15:15:20
Andrew_7
Danko, вы не могли бы дать пример? Я там нашёл примеры только по работе с DS1820 и прочими.. Пока не разобрался..
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 15:16:05
Andrew_7
Я в этом деле новичок.. ) Помогите пожалуйста

Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 15:34:53
Vov123
http://embedded.ifmo.ru/sdk/sdk11/doc/s ... 1_0_11.pdfстр.46-63
Довольно подробно про эту м-му по русски описано.Кстати в проте отлично моделируется.
Вот ещё,со староглиняных времён сохранилось,с какого-то форума.
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 15:53:15
Andrew_7
Вечером займусь, спасибо
Vov123!

Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 19:16:41
Andrew_7
Посмотрел я документ этот. Всё равно не понял, как же из rtc_get_time вывести информацию на дисплей. Пример в документе дан только для внешней памяти. Может у кого есть готовый код? Поделитесь пожалуйста...
Re: Помогите с кодом для PCF8583
Добавлено: Ср июл 07, 2010 23:01:59
Danko
Andrew_7, что может быть проще?
Код: Выделить всё
while (1)
{
rtc_get_time(0, &my_hour, &my_min, &my_sec, &my_hsec); // прочесть из часов время
sprintf(lcd_buffer, "%u:%u:%u.%u", my_hour, my_min, my_sec, my_hsec); // отпечатать в переменную (буфер)
lcd_clear(); // очистить экран и установить координаты 0:0
lcd_puts(lcd_buffer); // вывести строку (буфер) на LCD
delay_ms(100); //задержка на 0,1 сек
};
}
пользовался только примерами из CVAVR
в архиве проект для CVAVR и для Proteus
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 08:52:21
Andrew_7
Спасибо большое за пример! Значит я близко был.. )
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 13:40:17
Andrew_7
Ребят! Спасибо всем за помощь! Всё работает!
Маленький вопросик только.. Позвольте уж..

Сейчас выводит дату и время программа на дисплей, но дата в формате 8/7/1
то есть 8 число, 7 месяц, 2010 год, как можно добавить нули, чтоб получилось: 08/07/2010 ?
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 13:50:37
Vov123
дата/10 дата%10 / месяц/10 месяц%10
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 14:11:16
Andrew_7
Vov123, можете показать в коде, плизз? У меня не получается.. Не срабатывает..
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 14:17:29
Vov123
Про год я уже не помню как там,ну вот к примеру с часами вот так:
sprintf(buf,"%u%u:%u%u:%u%u",hour/10,hour%10,min/10,min%10,sec/10,sec%10);
так-же поступите с днями и месяцами,хотя им можно применить имена собственные.
Re: Помогите с кодом для PCF8583
Добавлено: Чт июл 08, 2010 16:36:12
Danko
Andrew_7 писал(а):Сейчас выводит дату и время программа на дисплей, но дата в формате 8/7/1
то есть 8 число, 7 месяц, 2010 год, как можно добавить нули, чтоб получилось: 08/07/2010 ?
Andrew_7, настоятельно рекомендую: УЧИТЕ СИ !!!!!!!!
Ваш вопрос абсолютно не в тему !!!!!!!
для времени:
для года надеюсь Сами подправите.