Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega8, проблеммы с выводом текстовой строки на дисплей
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс июл 27, 2025 21:40:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 20:13:50 
Открыл глаза

Зарегистрирован: Вс ноя 15, 2009 22:34:49
Сообщений: 41
Рейтинг сообщения: 0
Доброго времени суток!
Помогите разобраться, никак не могу понять в чем проблемма, вобщем есть ATmega8 к ней подключен дисплей от нокии 3310, программка довольнотаки примитивная, всего несколько вложенных менюшек. По началу написании программы все нормально, текст выводится правильно, но на каком то этапе, явно с увеличением текста программы, вместо текста появляется всякая хрень. Проект в CodeVisionAVR и модель в протеусе прилагаю , посмотреть глюки можно так: нажимаем кнопку меню, в меню перемещаемся по пунктам вверх и вниз кнопками Up/Down, кнопкой ОК входим в выбранный пункт меню, кнопкой Menu возвращаемся назад. И в этом меню как раз видно, в первом пункте еще нормальный текст, а в следующих уже хрен знает что.
Причем если например написать текст внутри этих пунктов английскими буквами или заглавными русскими, то текст будет нормальным.
Если посмотреть на таблицу шрифта, то видно что русские прописные буквы как раз в конце находятся, такое впечатление что по мере увеличения программы таблица шрифта начинает "портится" с низу.
Но если например в последней менюшке использовать текст от другой, то он выведется нормально.
Если в программе поменять местами процедуры вывода текста, то хрень эта будет уже в другом месте, в том что будет чисто по тексту программы последним.
Пробовал вместо всех процедур вывода текста сделать одну через switch-case но в результате все точно так же. Для проверки собирал это все в железе, но там все так же как и в протеусе.
Я так понимаю что то переполняется и лезет всякая хрень, но вот что, ну никак понять не могу.


Последний раз редактировалось hsl Сб июн 05, 2010 00:04:58, всего редактировалось 4 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 20:22:22 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Скорее всего стек переполняется и вершина стека затирает шрифт, который ты умудрился задать в RAM а не в Flash. Храни шрифты в Flash. Расход Flash не уменьшится (потому что компилятор сохраняет твой шрифт в Flash, а при инициализации переменных, в т.ч. Массива шрифта копирует его из Flash в RAM), а такая проблема с RAM пропадет.

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 22:08:07 
Открыл глаза

Зарегистрирован: Вс ноя 15, 2009 22:34:49
Сообщений: 41
Рейтинг сообщения: 0
DrWatson писал(а):
Скорее всего стек переполняется и вершина стека затирает шрифт, который ты умудрился задать в RAM а не в Flash. Храни шрифты в Flash. Расход Flash не уменьшится (потому что компилятор сохраняет твой шрифт в Flash, а при инициализации переменных, в т.ч. Массива шрифта копирует его из Flash в RAM), а такая проблема с RAM пропадет.

Хранить во Flash? А это разве не во Flash "flash char Font1 [256][6] =..."
Сори если туплю, но я еще слабо разбираюсь в этом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 22:11:25 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
а текстовые строки? может они искажаются.
И где обещанный исходник?

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 22:16:41 
Открыл глаза

Зарегистрирован: Вс ноя 15, 2009 22:34:49
Сообщений: 41
Рейтинг сообщения: 0
Да ступил, пока писал забыл про исходник совсем, добавил ссылку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 22:35:20 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Попробуй для начала в файле nokia_lcd.c изменить определение функции
Код:
void LcdPutLine(unsigned char *data, unsigned char x,unsigned char y)

на:
Код:
void LcdPutLine(flash unsigned char *data, unsigned char x,unsigned char y)

Или лучше скопируй её переобозвав к примеру LcdPutLineF(flash unsi....
И там где в качестве строки передаешь константную (т.е. в виде текста в кавычках "Положение1" к примеру) замени на вот эту преобразованную функцию. Т.е. у функции LcdPutLineF в качестве первого параметра (*data) будет указатель на строку в Flash памяти.
А в текущем варианте у тебя передается указатель на массив в RAM и возможно при переполнении стека эти массивы и портятся.

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 22:55:03 
Открыл глаза

Зарегистрирован: Вс ноя 15, 2009 22:34:49
Сообщений: 41
Рейтинг сообщения: 0
DrWatson большое спасибо, все заработало!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, проблеммы с выводом текстовой строки на дисплей
СообщениеДобавлено: Вт июн 01, 2010 23:02:44 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
нема за шо :)

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y