Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: lcd powertip pg240128+atmega128 (portg)
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Alexey Romanenko
доброго времени суток!

проблема собственно в следующем:

есть атмега128 и ч\б экранчик, все бы ничего, но контрольная шина экрана повешена на PORTG контроллера. fuse m103c убрал, mcucr =0x00.
Брал кучу готовых библиотек, но ни одна не заработала. Может есть люди кто занимался этим и помогут мне исходниками либы?

заранее спасибо
AlexMad
А какой контроллер в этом экранчике? я с ходу нашел два варианта. Правда, у меня используются другие, так что помощь может получиться неправильная.
Alexey Romanenko
у него toshiba t6963. буду благодарен за любую помощь)
AlexMad
немножко вопросов:
- что именно не работает?
- делаете ли инициализацию?
- при чем тут mcucr?
Alexey Romanenko
если бы знал что не работает написал бы более конкретно.
Иницилищация выполняется, но вот результата я не вижу. Должен экран очистится, а у него высвечивается одна полоска (всегда в одном месте) и не исчезает.
mcucr -- регистр управления portg в нем бит SRE (могу ошибится название точно не помню, он старший бит) должен быть нулем если нужно будет использовть portg как обычный порт ввода-вывода
AlexMad
так, а вообще, на порт G чего-нибудь выводиться? осциллом, тестером посмотреть, SRE, по-моему, тут не причем, у меня mcucr=0xc0 и на порту G висят светодиоды - нормально все работает.
Как вы пишите в порт?
Alexey Romanenko
порт работает.тестером проверил. работает только если писать так
portg |=(1<<0);
AlexMad
А как Вы еще хотите писать?
Если выбрали порт G, то и работайте по его правилам.

Какой вариант вывода в порт НЕ работает?
Alexey Romanenko
прямой вывод portg=0x00 не работает.
исходники я исправил, везде запись в порт идет как нужно..
AlexMad
делайте в два захода:

portg &= !(data)
portg |= (data)
Сергей Борщ
Цитата(Alexey Romanenko @ Jan 15 2008, 03:56) *
прямой вывод portg=0x00 не работает.
исходники я исправил, везде запись в порт идет как нужно..
Покажите, наконец, фрагмент исходника. Объясните, что значит "вывод не работает", если "запись в порт идет как нужно"? Напишите: что делаете, что получаете в результате, что ожидаете получить.

А то вон БезумныйАлекс уже совсем безумные варианты предлагает.
Alexey Romanenko
Вам все либы сюда запостить? smile.gif
Хотелось бы получить готовую работоспособную либу, которая могла бы компилиться в avr-gcc потому как все те которые удалось найти, не удалось запинать.

На порту уже удалось управлять "1" и "0". Поменял библиотеку которую взял отсюда http://en.radzio.dxp.pl/t6963/. Но за неимением осцилографа не могу сказать что происходит на выводах. Хотя, если верить proteus 7 то на ногах постоянно должен меняться потенциал, но мультиметр в реальном устройстве либо не засекает изменения либо там ничего не меняется...
Сергей Борщ
Цитата(Alexey Romanenko @ Jan 15 2008, 14:02) *
Вам все либы сюда запостить? smile.gif
Ага, а мы их отладим и вышлем вам почтой, с работающим макетом и ящиком пива впридачу sad.gif
Цитата(Alexey Romanenko @ Jan 15 2008, 14:02) *
Хотелось бы получить готовую работоспособную либу, которая могла бы компилиться в avr-gcc потому как все те которые удалось найти, не удалось запинать.
Напишите свою. Для начала научитесь просто выставлять на порту нужное значение - что то вроде
Код
int main()
{
  .. настройка
  PORTG = значение
  for(;;)
  ;
}
Мультиметром убедитесь, что на порту появляется нужное значение - оно никуда не денется, вы его сможете измерить мультиметром. То же и с портом, на котором управляющие сигналы.
Потом штудируйте описание T6963. Попытайтесь записать/прочитать несколько разных значений в экранную память - добейтесь, чтобы читались те значения, которые вы записали. Дальше разбирайтесь, как работает библиотека. За вас этого никто сделать не сможет.
Alexey Romanenko
оффтоп: про пиво я впринципе не против smile.gif

теперь к делу: на порт выводяться значения.
но как мне узнать что в память lcd что-то залилось? без вывода этого на экран мне ничего не узнать (или я ошибаюсь?). а для того чтобы вывести хотябы символ из внутреннего знакогенератора нужно написать минимум 5 функций: иницализация портов и lcd, запись данных, запись команды, чтение статуса, запись символа. тут мне кажется я могу очень сильно намутить...

Просто думал что в инете есть куча всего доброго под это дело, а оказалось не так...
Сергей Борщ
Цитата(Alexey Romanenko @ Jan 15 2008, 17:50) *
теперь к делу: на порт выводяться значения.
но как мне узнать что в память lcd что-то залилось?
Вариантов масса:
1) считываете, сравниваете с ожидаемым, если совпало - поднимаете одну ногу, если не совпало - поднимаете другую.
2) пишете вывод в UART, подключаете свой процессор через MAX232/аналоги к СОМ-порту писюги, запускаете терминалку, выводите значения в нее (очень полезно, рекомендую).
3) останавливаете свою программу циклом в том месте, где она читает из дисплея и мультиметром побитно считываете с шины данных значение.
Alexey Romanenko
мммм... про юарт я и забыл совсем.. хорошая идея, попробую. остальные мне не очень нравяться. есть конечно вариант через отладочные платы гонять все это smile.gif

спасибо за советы, буду пробовать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.