Работа с библиотекой glcd
- Войдите на сайт для отправки комментариев
Чт, 04/10/2018 - 18:59
При компиляции кода:
#include <glcd.h> #include <glcd_Buildinfo.h> #include <glcd_Config.h> #include "fonts/SystemFont5x7.h" // int j = 7; void setup () { GLCD.Init (NON_INVERTED); GLCD.ClearScreen(); GLCD.SelectFont(System5x7); } void loop () { GLCD.ClearScreen(); GLCD.CursorTo(1,1); GLCD.Puts("Hello world"); do {} while(1); }
Возникает ошибка:
Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"
In file included from C:\Users\User\Desktop\arduino-1.8.5\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\Project_grafLcd.ino.cpp:1:
C:\Users\User\Desktop\arduino-1.8.5\libraries\glcd/fonts/SystemFont5x7.h:48:28: error: variable 'System5x7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
static uint8_t System5x7[] PROGMEM = {
^
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Как мне решить эту проблему?
После static добавить ключевое слово const
что за static?
Так понятней, что за static? Надо после него написать const, чтобы получилось
хммм. а в этом массиве что я должен указать? код изображения?
Понятно, проехали. Если вы не понимаете, что вам пишет компилятор, и не можете даже попытаться перевести это дело гугльпереводчиком - то и мои ответы покажутся вам китайской грамотой. Я - пас, правильный совет я вам уже дал, более добавить нечего, кроме того, что смотреть надо внутри файла SystemFont5x7.h - о чём и говорит компилятор. Он даже путь к этому файлу показывает: C:\Users\User\Desktop\arduino-1.8.5\libraries\glcd/fonts/SystemFont5x7.h
Я переводил, но как вы верно подметили, я не понимаю что он мне говорит...Вы, как специалист, могли бы мне, начинающему, подсказать что мне говорит компилятор и что это означает, т.к. мне интересно это знать.
По самостоятельным деймствиям: в файле Systemfont5x7 я нашел строку с static, но я не понимаю что с ней делать...как я понимаю, PROGMEM это массив для отображения алфавита. Но что такое static и для чегго он я не понимаю.
Надеюсь на понимание и буду рад, если вы мне сможете объяснить.
Как любитель могу вам посоветовать поискать другую библиотеку.
Ещё раз перечитайте, что я писал. Раз уж нашли строку в файле - будьте добры перечитать, что именно я советовал сделать. Это моё последнее сообщение в данной теме, ибо ответ - уже дан. Всего хорошего.
Но что такое static и для чегго он я не понимаю.
Вы этоно не "не понимаете", а попросту "не знаете". А не знаете потому, что не прочли ни одной книжки по языку.
Читайте книги - и будет Вам щастте.
На счет книги, какую посоветуете?
Разобрался, компиляция прошла. Спасибо.