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

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


Местный
***

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



Цитата(WHALE @ Apr 9 2006, 10:58) *
Что за камень?Если Tiny,то с функцией sprintf возникают проблемы.Ест много флэш и стек надо увеличи
чить по сравнению с выделяемым CV по умолчанию.


Mega8 в протеусе. С функцией sprintf и до этого были проблемы, насколько я помню...
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 9 2006, 09:18
Сообщение #17


Знающий
****

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



Увеличь размер стека до 64 байт,и все должно пойти.


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


Местный
***

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



Data Stack area: 60h to 25Fh
Data Stack size: 512 byte(s)
Estimated Data Stack usage: 15 byte(s)

-- Это вроде бы нормально....
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 9 2006, 10:31
Сообщение #19


Знающий
****

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



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

Сообщение отредактировал WHALE - Apr 9 2006, 10:36


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


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Я бы все-таки не рекомендовал бы пользоваться sprintf
дел на копейку, а памяти отожрет не по детски. В начале ветки приводился код который можно довести до ума. Да и понимания больше будет.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 15:14
Сообщение #21


Местный
***

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



Вот в том то и дело, что код, вроде бы должен работать, но не работает, а все попытки довести его до ума привели к "никчему". А sprintf глючит. С тем и сидим.

А размер стека если вы не заметили у меня 512 байт, думаю этого должно хватать....
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 9 2006, 15:42
Сообщение #22


Знающий
****

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



ну не знаю,если ресурсы проца позволяли,я неоднократно пользовался в CV sprintf,что позволялореша
ть 1 строкой кода сразу несколько задач,все работало.Какой-то глюк в компиляторе,связанный с выде
лением стека под нее есть,проявился на tiny2313,отловил в симуляторе AVRStudio и вылечил увеличе-
нием стека(совсем ненамного).Если вы уверены,что программа виснет именно на ней,прогоните код в
студии,если зависнет,увеличте размер стека.Что происходит,прекрасно видно при прогоне в дизассем-
блере.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Apr 9 2006, 16:47
Сообщение #23


тут может быть ваша реклама
*****

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



Цитата(ps1x @ Apr 9 2006, 19:14) *
Вот в том то и дело, что код, вроде бы должен работать, но не работает, а все попытки довести его до ума привели к "никчему". А sprintf глючит. С тем и сидим.

А размер стека если вы не заметили у меня 512 байт, думаю этого должно хватать....

А debugger то использовался? Может глянуть все по шагам.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Apr 9 2006, 16:47
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



2 ps1x
Давайте вс сначала, есть код в начале топика. Цифирь выводит, только криво.Ниже показано в чем ошибка. Исправляете и смотрите на результаты. К sprintf вернемся попозже.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 16:56
Сообщение #25


Местный
***

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



Дык я ж пробовал и так и сяк в том числе и так, как написанно выше, там не менее результата три либо показывает 55:34:88 вместо 05:34:08 либо заполняет экран черными квадратиками, либо не показывает ничего (в случае с sprintf). К сожалению дебаггера нет, да и асма я не знаю толком.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Apr 9 2006, 17:09
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
char lcd_buuff[2]; // обявляем массив (это строка)

time=8;
sprintf(lcd_buff,"%-i",time);
if (time<10) lcd_buff[0]='0';
lcd_dotoxy(x,y);
lcd_puts(lcd_buff);

Такой код приводит к заполнению всего дисплея (2х16) черными квадратами.

Это с предыдущей страницы.
К itoa не относиться.
Я еще раз повторюсь, вернитесь к исходному варианту и попробуйте снова.
Судя по всему после разнородных советов наделано ошибок немеряно.
Каждый новый вариант постите, что бы было понятно о чем идет речь.
(если хотите помощи)


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
ps1x
сообщение Apr 9 2006, 17:23
Сообщение #27


Местный
***

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



Цитата(beer_warrior @ Apr 9 2006, 21:09) *
Цитата

char lcd_buuff[2]; // обявляем массив (это строка)

time=8;
sprintf(lcd_buff,"%-i",time);
if (time<10) lcd_buff[0]='0';
lcd_dotoxy(x,y);
lcd_puts(lcd_buff);

Такой код приводит к заполнению всего дисплея (2х16) черными квадратами.

Это с предыдущей страницы.
К itoa не относиться.
Я еще раз повторюсь, вернитесь к исходному варианту и попробуйте снова.
Судя по всему после разнородных советов наделано ошибок немеряно.
Каждый новый вариант постите, что бы было понятно о чем идет речь.
(если хотите помощи)


В прошлый раз видимо в чем то ошибся.

Конкретно этот код выводит "0" и все. Так что не работает.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Apr 9 2006, 17:36
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Тогда проблема с lcd_puts(lcd_buff); что-то не то со сдигом или буфер маловат. Попробуйте посимвольно. И внимательно smile.gif
Готов поставить литр пива, что там просто банальный недосмотр.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 9 2006, 18:25
Сообщение #29


Знающий
****

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



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


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


Знающий
****

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



а так если
define lcd_buffer_size 16 //тут указывается длина строки вашего жки
char lcd_buf[lcd_buffer_size]; // обявляем массив (это строка вывода)
sprintf(lcd_buf,"%02u:%02u:%02u", hour, min, sec);
как вам уже советовали. далее собственно сам вывод-должно работать
ЗЫ.а ассмблер освоить очень желательно,у avr он несложен

Сообщение отредактировал WHALE - Apr 9 2006, 18:37


--------------------
"Hello, word!" - 17 errors 56 warnings
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 Текстовая версия Сейчас: 14th July 2025 - 12:15
Рейтинг@Mail.ru


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