|
|
  |
Функция вывода времени на жк. |
|
|
|
Apr 9 2006, 07:59
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

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

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

|
ну не знаю,если ресурсы проца позволяли,я неоднократно пользовался в CV sprintf,что позволялореша ть 1 строкой кода сразу несколько задач,все работало.Какой-то глюк в компиляторе,связанный с выде лением стека под нее есть,проявился на tiny2313,отловил в симуляторе AVRStudio и вылечил увеличе- нием стека(совсем ненамного).Если вы уверены,что программа виснет именно на ней,прогоните код в студии,если зависнет,увеличте размер стека.Что происходит,прекрасно видно при прогоне в дизассем- блере.
--------------------
"Hello, word!" - 17 errors 56 warnings
|
|
|
|
|
Apr 9 2006, 17:09
|

Профессионал
    
Группа: Свой
Сообщений: 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 не относиться. Я еще раз повторюсь, вернитесь к исходному варианту и попробуйте снова. Судя по всему после разнородных советов наделано ошибок немеряно. Каждый новый вариант постите, что бы было понятно о чем идет речь. (если хотите помощи)
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Apr 9 2006, 17:23
|
Местный
  
Группа: Свой
Сообщений: 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" и все. Так что не работает.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|