на экран по идее должны выводиться последовательно четыре сообщения с позиции 0:0. На самом деле надписи искажаются. Например вместо second label выводиться secon d label вместо third label ehird lab И такие "сбои" возникают в самые разные моменты и имеют разный "вид".
Уважаемый uk8amk, посмотрите пожалуйста свой драйвер. С "родным" драйвером от кодевижена таких проблем нет. Но ваш несомненно удобнее.
Проблемы как в "железе" так и в протеусе одинаковые.
Отчего же неверное? Да, в моем случае lcd_clear() сам не сбрасывает указатель знакоместа, зато это делает lcd_gotoxy(); Юзайте их в паре и ничего не бойтесь:)
Мяу всем! Вопрос к знатокам LCD: Собирая проект Андрея Дойникова "FM тюнер...и т.д....", столкнулся с такой проблемой: подключил индикатор 16х1 (Powertip PC1601B). Показывает только половину индикатора - первые 8 символов (с 1 по 8 ). Остальная половина (с 9 по 16) молчит. Почему такое может быть? Индикатор 100% рабочий. Пробовал другой такой же - то же самое! Написал отдельно тестовую программу для LCD, проверил на ней - та же фигня. Уже не знаю, что и делать. Может у этого индикатора какой-то замудренный алгоритм управления, хотя по даташиту стоит контроллер KS0066, ну или его аналог.... Может кто с подобным сталкивался? как его заставить показывать все 16 символов в строке?
если не разобрался еще то вот
индикатор хоть и 16х1 а внутри он на самом деле 8х2 первая строка начальный адрес 0х80 а второй 0хС0 тоесть если расматривать его как однострочный то первые 8 символов будут иметь адреса с 0х80 по 0х87 а вторые 8 с 0хС0 по 0хС7
когда я писал прогу для тюнера пришлось немного доработать проверенную библу для индикатора у меня все делается автоматом
пришлось ввести еще одну функцию и использовать вместо стандартной lcd_com() lcd_col()
Библиотека для работы с символьными дисплеями на базе контроллеров HD44780 и KS0073 с Хмега под Winavr, за основу была взята библиотека для atmega от Peter Fleury. Реализована поддержка контроллеров Xmega в 4-х битном режиме, добавлен символ уровня заряда батареи (lcd_putc(batn) n=0-5) и массив для автоматической перекодировки символов кириллицы.
Распиновка у микросхемы одинаковая. А модуль, частью которого микросхема является - может сделать кто угодно и как угодно, и не обязан он договариваться с другими делателями модулей и/или покупателями. А если тебе кто-то сейчас напишет что-нибудь пообещает "я думаю что наверное вот так нормально будет точно!", а ты включишь по написанному, а оно задымится и сгорит - и?
--
Документацию на микросхему смотри, от её ног пляши, сам узнаешь всё. Заодно поймёшь, как работает и почему именно так сделано.
мяу да я вроде определился по даташиташ посмотрел питание микросхем и получилось что первый минус второй плюс, да и к томуже это подтверждает что 1 это копус буду пробывать.
Уже 4 дня мучаюсь , использовал и библиоетеки codevision и microPascal и другие примеры из инета. Ничего не работает. И jtagen отключил , и кварц поставил...ничего.
Потом просто увеличил делай-и и тeперь команды нормално выпалнаются , ( типа стереть экран , переместить курсор..итд ) но вместо букв показывает всякую абракадабру типа ( ||| ||-| |): Уже не знаю в чем проблема. Программатор у меня самый простой под lpt, прошываю avrdude-ом.
Да и еще , я прочитал , что во время 4битной сxемы для отобрежения букв нужно два раза посылать data . но у меня не так. Задаю что нибудь в порте c , и даю en=1 а потом en=0 и команда срабатывает.
Вложения:
Комментарий к файлу: исxодник codevision asd.c [4.32 KiB]
Скачиваний: 461
А ничего что в исходнике в самом начале говорится про 8-битную шину?
Встроенная либа из CVAVR работает с другим расположением выводов(см хелп). И к тому же 4-битному режиму требуется не младшая, а старшая тетрада бит(7:4), по вашему описанию все наоборот. Есть встроенная либа и на 8 бит, но там используются контроллеры с поддержко внешней памяти:
LCD Functions for displays connected in 8 bit memory mapped mode These functions can be used only with AVR chips that allow using external memory devices. Чего нельзя сказать про ATmega8535.
Почитай внимательно даташит и правильно расставь задержки перед коммандами и будет счастье, сам не однократно сталкивался с проблемой когда на 8МГц все работает на ура, а на 16МГц начинается свистопляска
И еще. Чтоб использовать библиотеку кодвижн , все выxоды LCD должны идти на один порт ( по дефолту C ). А у меня контролные ножки на порте D. а дата - на порте C. Возможно ли именно так изменить порты в кодвижне?
Всем доброго времени, нашел LCD от принтера, на нем есть пару опознавательных знаков, а именно P1620B и WHX1620(на наклейке контроллера).Написал программку для создания велокомпьютера в CAVR и протестировал в Proteus. Но при физической реализации устройства, экран не подает признаков жизни. Как я понял из форума у меня проблемы с инициализацией LCD. Может кто поможет советом или делом...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения