реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Функция вывода времени на жк.
ps1x
сообщение Apr 9 2006, 21:31
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(vet @ Apr 9 2006, 22:25) *
Да конечно.
lcd_putsf('0'); - что должно быть аргументом? а что есть?


Пожалуйста, не отвечайте вопросом на вопрос, у меня итак уже крыша едет от этого...
huh.gif


И вот он - ПРАВИЛЬНЫЙ ОТВЕТ!!!!
Цитата
а так если
define lcd_buffer_size 16 //тут указывается длина строки вашего жки
char lcd_buf[lcd_buffer_size]; // обявляем массив (это строка вывода)
sprintf(lcd_buf,"%02u:%02u:%02u", hour, min, sec);
как вам уже советовали. далее собственно сам вывод-должно работать
ЗЫ.а ассмблер освоить очень желательно,у avr он несложен

Пиво в студию!!!

З.ы. Помоему ассемблер для х86 гораздо проще (ИМХО), я его смутно помню правда.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 9 2006, 21:48
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Apr 10 2006, 00:31) *
И вот он - ПРАВИЛЬНЫЙ ОТВЕТ!!!!


Потрясающая способность начисто игнорировать ответы на заданные вопросы.
"правильный ответ" до этого давали Вам уже минимум ДВАЖДЫ.
Цитата
Только вот куда указывает temp и есть-ли там куда он указывает свободное место
для размещения получившейся строки.... По тексту это неинециализированный указатель при
записи по которому чего-нибудь и порушите, или, как минимум, в пустоту запишите и потом из этой
пустоты чего-нибудь прочитаете. Как минимум компилятор должен был выдать вполне определенные
ругательства на этот счет. Не стоило их игнорировать.
char temp[MAX_SIZE_OF_STRING+1];
Ну а вообще надо заставить себя книжку дочитать!


Цитата
Надо писать FAQ по этому вопросу - каждую неделю кто-то накалываться. char *temp - это просто указатель в никуда - ручка от чашки - а самой чашки нет.
Надо писать:
char temp[размер строки], а потом передавать в функцию указатель -
т.е. адрес первого байта массива.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 21:57
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Да нет, не правы Вы, я пробовал эти варианты, в частности
char lcd_buf[2];
и выводил в него каждое преобразование отдельно часов минут и секунд, но, увы, не сработало...
Я не игнорирую никаких высказываний по теме, и вдумываюсь в каждый пост, все равно, проблема то в конечном счете моя wink.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 9 2006, 22:08
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ps1x @ Apr 10 2006, 00:57) *
Да нет, не правы Вы, я пробовал эти варианты, в частности
char lcd_buf[2];
и выводил в него каждое преобразование отдельно часов минут и секунд, но, увы, не сработало...
Я не игнорирую никаких высказываний по теме, и вдумываюсь в каждый пост, все равно, проблема то в конечном счете моя wink.gif

Бездумные пробы :-( не увенчались успехом, поскольку:
1) фиг знает что Вы делали за "преобразования";
2) буфер должен быть на _ТРИ_ байта.

Потом раз не "помогло" - НИКОГДА не будем писать какое-то непонятное число в
квадратных скобочках. Железная логика :-(


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 22:22
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(zltigo @ Apr 10 2006, 02:08) *
Цитата(ps1x @ Apr 10 2006, 00:57) *

Да нет, не правы Вы, я пробовал эти варианты, в частности
char lcd_buf[2];
и выводил в него каждое преобразование отдельно часов минут и секунд, но, увы, не сработало...
Я не игнорирую никаких высказываний по теме, и вдумываюсь в каждый пост, все равно, проблема то в конечном счете моя wink.gif

Бездумные пробы :-( не увенчались успехом, поскольку:
1) фиг знает что Вы делали за "преобразования";
2) буфер должен быть на _ТРИ_ байта.

Потом раз не "помогло" - НИКОГДА не будем писать какое-то непонятное число в
квадратных скобочках. Железная логика :-(

Почему непонятное, очень даже понятное char lcd_buf[2]; - фактически, это массив из char'ов размерностью 2, а 3 их там надо, поскольку строка в С всегда должна завершаться \0. ))

Преобразование itoa(); преобразует int в *сhar. wink.gif
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 9 2006, 22:25
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Цитата(ps1x @ Apr 10 2006, 01:31) *
Цитата(vet @ Apr 9 2006, 22:25) *

Да конечно.
lcd_putsf('0'); - что должно быть аргументом? а что есть?


Пожалуйста, не отвечайте вопросом на вопрос, у меня итак уже крыша едет от этого...
huh.gif


Поясняю.
lcd_putsf принимает аргументом строку. Вы передавали в неё символ. Всё.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 22:26
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Цитата(vet @ Apr 10 2006, 02:25) *
Цитата(ps1x @ Apr 10 2006, 01:31) *

Цитата(vet @ Apr 9 2006, 22:25) *

Да конечно.
lcd_putsf('0'); - что должно быть аргументом? а что есть?


Пожалуйста, не отвечайте вопросом на вопрос, у меня итак уже крыша едет от этого...
huh.gif


Поясняю.
lcd_putsf принимает аргументом строку. Вы передавали в неё символ. Всё.


Как я уже говорил выше, я пробовал и такой вариант: lcd_putsf("0");
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 9 2006, 22:32
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



В таком случае вопросов не имею.
Вообще, такие вещи успешно отлаживаются загрузкой программы в AVR Studio и внимательной трассировкой. Тему, в общем-то, и не стоило заводить. Имхо.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 9 2006, 23:43
Сообщение #39


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



> ps1x
Цитата
Как я уже говорил выше, я пробовал и такой вариант: lcd_putsf("0");

врать нехорошо.

ps: будьте внимательны к сообщениям компилятора, Warning'и игнорировать не стоит.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 10 2006, 04:30
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Вы только не обижайтесь,но вам действительно надо прислушаться к советам местных гуру,если вы серьезно собираетесь заниматься разработками на AVR,т.к проблема у вас была очень простая и имея
под рукой книгу по С и владя ассемблером,все решилось бы очень быстро.
З.Ы. а без ассемблера я вообще слабо представляю,как можно работать-та-же отладка,написание кусков,критичных ко времени и т.д.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 10 2006, 13:34
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Всем спасибо!
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 11:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01457 секунд с 7
ELECTRONIX ©2004-2016