Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ЖКД + NIOS II
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Kluwert
На стартер ките Стратикса IV по требованию нач-ва начал переделывать старый проект, который был без проца под NIOS II. Раньше я проекты под ПЛИС со встроенным процом не делал, поэтому всё делал как в альтеровских примерах. В результате всё работает, кроме одного: двухстрочного 16-символьного LCD. Пробовал как в примерах: lcd = fopen(DISPLAY_NAME, "w"); if (lcd > 0) fprintf(lcd, ...);
Выяснилось, что lcd = 0 и ЖКИ даже не производит начальной загрузки.
При этом ЖКИ однозначно подсоеденен правильно и в старом проекте успешно работал с функцией, написанной на verilog'е. Можно конечно работать с ЖКИ низкоуровнего, но уж очень хочется использовать printf'ы.
Специалисты, помогите!
barabek
Цитата(Kluwert @ Jun 13 2012, 04:40) *
но уж очень хочется использовать printf'ы.
Специалисты, помогите!


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


Serhiy_UA
Цитата(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 !!!

А для перекодировки символов в константы уже есть много программ в интернете..
barabek
Цитата(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 !!!";

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


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

Можно и так. Для этого нужно только где-то вставить табличку перекодировки...
Но для старта NiosII+LCD удобней начинать с более простого…
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.