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

 
 
 
Reply to this topicStart new topic
> AVR LCD I2C modules, библиотеки на чистом AVR-GCC
sunjob
сообщение Jun 1 2018, 10:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-12-17
Пользователь №: 100 639



добрый день!

есть две LCD-библиотеки Arduio, работающие ТАК_КАК_НАДО с модулем I2C_LCD_mjkdz

hd44780 / bill perry
NewliquidCrystal / fmalpartida

вопрос 1: есть ли у кого "наработки" по переводу этих (одной из двух) библиотек на avr-gcc pure c (на крайняк avr-gcc/c++)?

ADD

в сети достаточно "вариантов" библиотек на СИ для работы с HD44780, есть даже pfleury_avrlibs (i2cmaster, lcdlibrary, uartlibrary), но все библиотеки дисплея на "обычное" подключение, без I2C, понятно, что как-то можно скрестить i2cmaster и lcdlibrary... но потребуется много всего ... не вариант :о)

вопрос 2: нужна библиотек на avr-gcc c прямой работой через I2C модуль, желательно имеющей понятие об MJKDZ, (как пример NewliquidCrystal - имеет конструктор I2C для инициализации и дальше работа с дисплеем, "обычным способом", надеюсь обьяснил понятно)

about MJKDZ - это очень специфичный модуль, кто в курсе, тот, надеюсь, понял, кто не в курсе - как говориться, мал клоп, да вонюч :о)

итак, можно ссылки, мымсли, комментарии...

tag: linux, avr-gcc, ком.строка, makefile, i2c_lcd модуль, NO windows, NO avr-studio/iar/codevision...etc

Сообщение отредактировал sunjob - Jun 1 2018, 15:13
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 1 2018, 10:56
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 625
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вы будете смеяться, но "библиотеки ардуино" это и есть чистейший AVR-GCC, вернее, WinAVR


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jun 1 2018, 11:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



1. Если хотите слезть с ардуньи, то меняйте и стиль разработки. Вместо поиска библиотеки, надо искать даташит. А потом просто писать по нему программу и всё.

2. Выкинуть нахрен этот переходник с I2C и подключиться напрямую к ЖКИ.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 1 2018, 11:51
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 098
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(sunjob @ Jun 1 2018, 13:08) *
итак, можно ссылки, мымсли, комментарии...

В CodeVision эти индикаторы должны поддерживаться. Пробной версии для не слишком сложного проекта вполне хватит. И в этом случае я вообще не вижу смысла в использовании GCC. Ну, или как уже сказали - написать свою реализацию, это не так уж и сложно ...
Go to the top of the page
 
+Quote Post
sunjob
сообщение Jun 3 2018, 10:36
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-12-17
Пользователь №: 100 639



"все готово, шеф, но есть нюансы..."

промежуточные результаты, выдает ошибку в avr-studio4:
Код
../lib/arduino_cores/hooks.c:13:6: error: 'void yield()' aliased to undefined symbol '__empty'


Сообщение отредактировал sunjob - Jun 3 2018, 15:35
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 3 2018, 17:50
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(sunjob @ Jun 3 2018, 13:36) *
. . . промежуточные результаты, выдает ошибку в avr-studio4:
Код
../lib/arduino_cores/hooks.c:13:6: error: 'void yield()' aliased to undefined symbol '__empty'

Ну так, ОНО сказало что проблема внутри hooks.c, а именно нет определения для __empty.
(макрос скорее всего, смотрите файл). Сама ф-ия yield() - вызов планировщика для переключения задач.
Обновите софтину на AtmelStudio из последних, может из-за этого (код требует новой версии среды разработки и-или библиотек).


Go to the top of the page
 
+Quote Post
sunjob
сообщение Jun 3 2018, 17:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-12-17
Пользователь №: 100 639



Код
static void __empty() {}
void yield(void) __attribute__ ((weak, alias("__empty")));

hooks.c:11:6: error: 'void yield()' aliased to undefined symbol '__empty'


avr-studio4 - как есть, обновляться не будет, тулчейны менял... не помогло
как ни будь "адаптировать" под старую версию?

спасибо

### UPDATE ###

AVR 8-bit Toolchain v3.6.1 – Windows 5/14/2018
URL1

подсунул этот тулчайн, ошибка та-же...

Сообщение отредактировал sunjob - Jun 3 2018, 18:45
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 3 2018, 18:33
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Код в hooks.c у меня тотже самый. Под AtmelStudio7/avr8-gnu-toolchain-3.6.1.1750. + W10 проект компилируется без ошибок.
Сомневаюсь, что в ардуине обеспечена совместимость снизу вверх, да и сверху вниз тоже.
Берите последнюю версию среды разработки и перетягивайте код под нее, а не наоборот.
ps
"раскройте" макрос в функцию, чтобы без алиаса. Может (вдруг) это будет единственная ошибка.
Go to the top of the page
 
+Quote Post
sunjob
сообщение Jun 3 2018, 19:17
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-12-17
Пользователь №: 100 639



ну да, я уже сам подумываю об этом :о) доберусь, гляну... (хотя там не все так просто, с обьявлением "слабого символа" и "синонима"...)
по поводу старших версий студии - не планируется
а 4я студия исключительно для отработки и факультативного изучения
родная ось - линух

в 7й студии как собирал проект? (импорт из arduino/ino или маунальное создание пустого проекта и перекидывание в ручную)
я не смог в 7ю студию добавить расширение arduino_ide_for_atmel_studio_xxx.vsix, ни в ручном ни в каком режиме, в инете предлогают обновить Visual-Studio до последней... ну я забил на это "великое действо", создавал проекты с "нуля")

p.s.
ясен пень, дотошно проверил, на 6 и 7-ке собирается нормально...
поэтому склоняюсь к тому, что все таки сама 4ка что-то делает "не то" :о), надо еще "выхлоп" поизучать

### UPDATE ###

немного подрихтовал, теперь непонятная проблема с линковщиком
выкус лога в приложении
Прикрепленный файл  avrstudio4_links2.txt ( 1.21 килобайт ) Кол-во скачиваний: 13




Сообщение отредактировал sunjob - Jun 4 2018, 16:59
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 5 2018, 06:26
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Если в h-файлах кроме объявлений содержится код, то такие грабли это не ошибка, а закономерность.
Проверяйте "двойные" и транзитные включения.
Go to the top of the page
 
+Quote Post
sunjob
сообщение Jun 6 2018, 09:09
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 13-12-17
Пользователь №: 100 639



некоторая мысль по этому поводу)

Цитата
в h-файлах кроме объявлений содержится код

h & c/cpp файлы по сути это одно и то-же, и, по идее, это не является ошибкой в С (тем более в С++)

вполне корректный код

Код
//
// main.h
//
void func1(void);
void func2(void) { printf("func2()\n"); }

//
// main.c
//
#include "main.h"
void func1(void) { printf("func1()\n"); }
int  main (void) { printf("main()\n");  }



проблема-то именно в версии студии (avrstudio4)

изучил выхлопы студий, нашел некторые "особенности"
- в 7й студии удобно определяются "ключи" для С и С+
- в 4й студии можно сделать "либо для всех", либо "персонально" для каждого "файла" с/с++
(пока на этом этапе)

все имхо и, как обычно, я ни чего не понимаю laughing.gif
спасибо

Сообщение отредактировал sunjob - Jun 6 2018, 09:14
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th July 2018 - 02:35
Рейтинг@Mail.ru


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