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

 
 
 
Reply to this topicStart new topic
> ЖКД + NIOS II, Не удаётся "оживить" ЖКД
Kluwert
сообщение Jun 12 2012, 18:40
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639



На стартер ките Стратикса IV по требованию нач-ва начал переделывать старый проект, который был без проца под NIOS II. Раньше я проекты под ПЛИС со встроенным процом не делал, поэтому всё делал как в альтеровских примерах. В результате всё работает, кроме одного: двухстрочного 16-символьного LCD. Пробовал как в примерах: lcd = fopen(DISPLAY_NAME, "w"); if (lcd > 0) fprintf(lcd, ...);
Выяснилось, что lcd = 0 и ЖКИ даже не производит начальной загрузки.
При этом ЖКИ однозначно подсоеденен правильно и в старом проекте успешно работал с функцией, написанной на verilog'е. Можно конечно работать с ЖКИ низкоуровнего, но уж очень хочется использовать printf'ы.
Специалисты, помогите!
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 12 2012, 22:21
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Kluwert @ Jun 13 2012, 04:40) *
но уж очень хочется использовать printf'ы.
Специалисты, помогите!


Я не специалист и конкретно с Вашу конфигурацию железа не использовал. Но использование "низкоуровнего" не запрещает использовать printf. Я бы как раз и делал свое низкоуровневое управление дисплеем - там все просто. Написал бы свою функцию putch вместо стандартоной. Сама стандартная функция printf вызывает функцию putch, уже написаную Вами. При этом можно все организовать с помощью прерываний и не кушать зря процесорное время. А может даже удобней будет использовать функцию sprintf.


Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 13 2012, 05:18
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Kluwert @ Jun 12 2012, 21:40) *
...помогите!

Напишите своих функций, это не сложно, а потом подстройтесь под стандартные.
В приложении пример с моими функции для ЖКД из двух строк по 16 символов.
Правда, на стандартные потом уже и не переходил...

Инициализация и первое сообщение:
int main()
{ init_LCD();
..........
out_msg_to_LCD((alt_u8 *)&msg3, 0);
..........
}


и где-то описана строка выдачи «LAN is OK !!!»
alt_u8 msg3[]={76,65,78,32,105,115,32,79,75,32,33,33,33,32,32,32}; //LAN is OK !!!

А для перекодировки символов в константы уже есть много программ в интернете..
Прикрепленные файлы
Прикрепленный файл  Functions_for_LCD.zip ( 6.34 килобайт ) Кол-во скачиваний: 48
 
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 14 2012, 03:24
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Serhiy_UA @ Jun 13 2012, 15:18) *
и где-то описана строка выдачи «LAN is OK !!!»
alt_u8 msg3[]={76,65,78,32,105,115,32,79,75,32,33,33,33,32,32,32}; //LAN is OK !!!

Это немного не в тему, но все-таки спрошу.

А почему нельзя написать


alt_u8 msg3[]="LAN is OK !!!";

А перекодировку делать при выводе. Как по мне - так это гораздо читаемей и редатируемей.


Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 14 2012, 05:05
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(barabek @ Jun 14 2012, 06:24) *
А перекодировку делать при выводе. Как по мне - так это гораздо читаемей и редатируемей.

Можно и так. Для этого нужно только где-то вставить табличку перекодировки...
Но для старта NiosII+LCD удобней начинать с более простого…
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 09:51
Рейтинг@Mail.ru


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