Jump to content

    

ЖКД + NIOS II

На стартер ките Стратикса 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this