Jump to content

    

Recommended Posts

На стартер ките Стратикса IV по требованию нач-ва начал переделывать старый проект, который был без проца под NIOS II. Раньше я проекты под ПЛИС со встроенным процом не делал, поэтому всё делал как в альтеровских примерах. В результате всё работает, кроме одного: двухстрочного 16-символьного LCD. Пробовал как в примерах: lcd = fopen(DISPLAY_NAME, "w"); if (lcd > 0) fprintf(lcd, ...);

Выяснилось, что lcd = 0 и ЖКИ даже не производит начальной загрузки.

При этом ЖКИ однозначно подсоеденен правильно и в старом проекте успешно работал с функцией, написанной на verilog'е. Можно конечно работать с ЖКИ низкоуровнего, но уж очень хочется использовать printf'ы.

Специалисты, помогите!

Share this post


Link to post
Share on other sites
но уж очень хочется использовать printf'ы.

Специалисты, помогите!

 

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

 

 

 

Share this post


Link to post
Share on other sites
...помогите!

Напишите своих функций, это не сложно, а потом подстройтесь под стандартные.

В приложении пример с моими функции для ЖКД из двух строк по 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

Share this post


Link to post
Share on other sites
и где-то описана строка выдачи «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 !!!";

 

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

 

 

Share this post


Link to post
Share on other sites
А перекодировку делать при выводе. Как по мне - так это гораздо читаемей и редатируемей.

Можно и так. Для этого нужно только где-то вставить табличку перекодировки...

Но для старта NiosII+LCD удобней начинать с более простого…

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this