Перейти к содержанию
    

AVR LCD I2C modules, библиотеки на чистом AVR-GCC

добрый день!

 

есть две 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

2. Выкинуть нахрен этот переходник с I2C и подключиться напрямую к ЖКИ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

В CodeVision эти индикаторы должны поддерживаться. Пробной версии для не слишком сложного проекта вполне хватит. И в этом случае я вообще не вижу смысла в использовании GCC. Ну, или как уже сказали - написать свою реализацию, это не так уж и сложно ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

промежуточные результаты, выдает ошибку в avr-studio4:

../lib/arduino_cores/hooks.c:13:6: error: 'void yield()' aliased to undefined symbol '__empty'

Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. . . промежуточные результаты, выдает ошибку в avr-studio4:

../lib/arduino_cores/hooks.c:13:6: error: 'void yield()' aliased to undefined symbol '__empty'

Ну так, ОНО сказало что проблема внутри hooks.c, а именно нет определения для __empty.

(макрос скорее всего, смотрите файл). Сама ф-ия yield() - вызов планировщика для переключения задач.

Обновите софтину на AtmelStudio из последних, может из-за этого (код требует новой версии среды разработки и-или библиотек).

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Код в hooks.c у меня тотже самый. Под AtmelStudio7/avr8-gnu-toolchain-3.6.1.1750. + W10 проект компилируется без ошибок.

Сомневаюсь, что в ардуине обеспечена совместимость снизу вверх, да и сверху вниз тоже.

Берите последнюю версию среды разработки и перетягивайте код под нее, а не наоборот.

ps

"раскройте" макрос в функцию, чтобы без алиаса. Может (вдруг) это будет единственная ошибка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

по поводу старших версий студии - не планируется

а 4я студия исключительно для отработки и факультативного изучения

родная ось - линух

 

в 7й студии как собирал проект? (импорт из arduino/ino или маунальное создание пустого проекта и перекидывание в ручную)

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

 

p.s.

ясен пень, дотошно проверил, на 6 и 7-ке собирается нормально...

поэтому склоняюсь к тому, что все таки сама 4ка что-то делает "не то" :о), надо еще "выхлоп" поизучать

 

### UPDATE ###

 

немного подрихтовал, теперь непонятная проблема с линковщиком

выкус лога в приложении

avrstudio4_links2.txt

 

 

Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если в h-файлах кроме объявлений содержится код, то такие грабли это не ошибка, а закономерность.

Проверяйте "двойные" и транзитные включения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

в 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:

спасибо

Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...