Помогите с кодом для PCF8583
-
Andrew_7
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт сен 04, 2007 19:50:22
- Контактная информация:
Re: Помогите с кодом для PCF8583
Danko, я возобновил изучение СИ.. Просто не сразу всё даётся.. Спасибо за помощь 
Чтобы удивиться - достаточно одной минуты, чтобы сделать удивительную вещь - нужны долгие годы.
- Реклама
-
Andrew_7
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт сен 04, 2007 19:50:22
- Контактная информация:
Re: Помогите с кодом для PCF8583
.. с выводом года так не получается..
Чтобы удивиться - достаточно одной минуты, чтобы сделать удивительную вещь - нужны долгие годы.
-
Andrew_7
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт сен 04, 2007 19:50:22
- Контактная информация:
Re: Помогите с кодом для PCF8583
Может быть кто - нибудь порекомендует книги по программированию на СИ AVR контроллеров? Буду признателен!
Чтобы удивиться - достаточно одной минуты, чтобы сделать удивительную вещь - нужны долгие годы.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Помогите с кодом для PCF8583
Си для AVR ?Andrew_7 писал(а):книги по программированию на СИ AVR контроллеров
Прошу прощения Си он и в Африке Си.
Любая книга по Си будет Вам в помощь в которой есть примеры не под винду, а под старой добрый DOS. Можно и под UNIX.
А вообще у каждого Сишника должна быть книга авторов: Брайен В. Керниган и Деннис М. Ричи .
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
-
Andrew_7
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт сен 04, 2007 19:50:22
- Контактная информация:
Re: Помогите с кодом для PCF8583
Danko, вы не подскажите, с чего копать, чтоб докапать до вывода норального года? ))
У меня пока не получается вывести в правильной последовательности год..
У меня пока не получается вывести в правильной последовательности год..
Чтобы удивиться - достаточно одной минуты, чтобы сделать удивительную вещь - нужны долгие годы.
- Реклама
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Помогите с кодом для PCF8583
в месте с датой
небольшое замечание: дата будет верна только еще один год т.к. PCF8583 года считает от 0 до 3.
високосный год это 0.
для правильной работы константу 2008 нужно заменить переменной и организовать счетчик.
Код: Выделить всё
rtc_get_time(0, &my_hour, &my_min, &my_sec, &my_hsec); // прочесть из часов время
rtc_get_date(0, &my_date, &my_month, &my_year); // и дату
sprintf(lcd_buffer, "%02u:%02u:%02u.%02u \n%02u-%02u-%u",
my_hour, my_min, my_sec, my_hsec, my_date, my_month, 2008+my_year); // отпечатать в переменную (буфер)небольшое замечание: дата будет верна только еще один год т.к. PCF8583 года считает от 0 до 3.
високосный год это 0.
для правильной работы константу 2008 нужно заменить переменной и организовать счетчик.
- Вложения
-
- test_Mega32_PCF8583_LCD1602.zip
- (90.57 КБ) 242 скачивания
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
-
Andrew_7
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Вт сен 04, 2007 19:50:22
- Контактная информация:
Re: Помогите с кодом для PCF8583
Danko, спасибо больше за помощь!
Спасибо всем!
Спасибо всем!
Чтобы удивиться - достаточно одной минуты, чтобы сделать удивительную вещь - нужны долгие годы.
Re: Помогите с кодом для PCF8583
Здравствуйте!
портировал проект в Протеусе с меги 32 на мегу 8, но не получилось - вместо времени оно пишет нули, в чем может быть проблема?
портировал проект в Протеусе с меги 32 на мегу 8, но не получилось - вместо времени оно пишет нули, в чем может быть проблема?
- Вложения
-
- 2.rar
- (57.35 КБ) 162 скачивания
Re: Помогите с кодом для PCF8583
даже когда проэкте выложеном Danko переставляю дисплей на другой порт, указывая в коде програмы (где вставка асемблера) код порта куда подключен дисплей, то в итоге показывает какие-то караказяблики. 
Re: Помогите с кодом для PCF8583

Re: Помогите с кодом для PCF8583
В игрушке по названию "Протеус",всё-же надо FUSE для проца устанавливать.
Re: Помогите с кодом для PCF8583
Vov123 писал(а):В игрушке по названию "Протеус",всё-же надо FUSE для проца устанавливать.
Спасибо! а то сам еще бы несколько дней сидел думал бы

Re: Помогите с кодом для PCF8583
Vov123, не подскажите что за полтергейст, я в исправленом вами проекте удаляю одну пустую строку между двумя строками кода
компилирую и в итоге протеус опять выводит на экран только нули
Код: Выделить всё
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); компилирую и в итоге протеус опять выводит на экран только нули
Re: Помогите с кодом для PCF8583
Наверное у Вас что-то с soft-ом.У меня CVAVR(1.25.9) и прот(v.7.5 SP3)
- Вложения
-
- 2.rar
- (69.75 КБ) 192 скачивания
Re: Помогите с кодом для PCF8583
Выручаете! поставил CVAVR 1.25.9, раньше была CVAVR 1.25.7 beta и все скомпилировалось и заработало, спасибо!
Re: Помогите с кодом для PCF8583
не избежал наступления на грабли и я. методом последовательного приближения и научно-обоснованного тыка запустил я таки часы на PCF8593 - это почти то же самое, что и PCF8583. Практически во всех примерах приводится пример из CVAVR с использованием rtc_get_time(); sprintf(); lcd_puts();
sprintf() безбожно жрёт пространство програмной памяти, хотя функция очень мощная, но за её вездесущность приходится расплачиваться ресурсом AVR.
Есть другая функция itoa(), она преобразовывает целое число в строку, а в часах дробных чесел и нет:
Пример использования с часами:
к одноразрядным часам, минутам и секундам при выводе в переди выводится 0, т.е так. 03:06:08
Экономия програмной памяти раза в 3 .
sprintf() безбожно жрёт пространство програмной памяти, хотя функция очень мощная, но за её вездесущность приходится расплачиваться ресурсом AVR.
Есть другая функция itoa(), она преобразовывает целое число в строку, а в часах дробных чесел и нет:
Код: Выделить всё
itoa(int_char, str_buffer);Пример использования с часами:
Код: Выделить всё
char j;
char lcd_buf[2];
unsigned char my_hour, my_min, my_sec, my_hsec;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void main(void)
{
init (); //инициализация всего, что надо
#asm("sei")// Global enable interrupts
// C Y K L L O O P ******************************************************************************
while (1)
{
rtc_get_time(1, &my_hour, &my_min, &my_sec); // прочесть из часов время
lcd_gotoxy(0,0); // очистить экран и установить координаты 0:0
itoa(my_hour, lcd_buf); //преобразовать в строку
if (my_hour<10){j=lcd_buf[0];lcd_buf[0]=48;lcd_buf[1]=j;} //приписать 0
lcd_puts(lcd_buf); //вывести на LCD стоку
lcd_putsf(":"); //вывести на LCD двоеточие
itoa(my_min, lcd_buf); //преобразовать в строку
if (my_min<10){j=lcd_buf[0];lcd_buf[0]=48;lcd_buf[1]=j;} //приписать 0
lcd_puts(lcd_buf); //вывести на LCD стоку
lcd_putsf(":"); //вывести на LCD двоеточие
itoa(my_sec, lcd_buf); //преобразовать в строку
if (my_sec<10){j=lcd_buf[0];lcd_buf[0]=48;lcd_buf[1]=j;} //приписать 0
lcd_puts(lcd_buf); //вывести на LCD стоку
}//скобка while
}//скобка main
к одноразрядным часам, минутам и секундам при выводе в переди выводится 0, т.е так. 03:06:08
Экономия програмной памяти раза в 3 .


