Работа с библиотекой 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 uint8_t System5x7[] PROGMEM = {Так понятней, что за static? Надо после него написать const, чтобы получилось
static const uint8_t System5x7[] PROGMEM = {хммм. а в этом массиве что я должен указать? код изображения?
Понятно, проехали. Если вы не понимаете, что вам пишет компилятор, и не можете даже попытаться перевести это дело гугльпереводчиком - то и мои ответы покажутся вам китайской грамотой. Я - пас, правильный совет я вам уже дал, более добавить нечего, кроме того, что смотреть надо внутри файла SystemFont5x7.h - о чём и говорит компилятор. Он даже путь к этому файлу показывает: C:\Users\User\Desktop\arduino-1.8.5\libraries\glcd/fonts/SystemFont5x7.h
Я переводил, но как вы верно подметили, я не понимаю что он мне говорит...Вы, как специалист, могли бы мне, начинающему, подсказать что мне говорит компилятор и что это означает, т.к. мне интересно это знать.
По самостоятельным деймствиям: в файле Systemfont5x7 я нашел строку с static, но я не понимаю что с ней делать...как я понимаю, PROGMEM это массив для отображения алфавита. Но что такое static и для чегго он я не понимаю.
Надеюсь на понимание и буду рад, если вы мне сможете объяснить.
Как любитель могу вам посоветовать поискать другую библиотеку.
Ещё раз перечитайте, что я писал. Раз уж нашли строку в файле - будьте добры перечитать, что именно я советовал сделать. Это моё последнее сообщение в данной теме, ибо ответ - уже дан. Всего хорошего.
Но что такое static и для чегго он я не понимаю.
Вы этоно не "не понимаете", а попросту "не знаете". А не знаете потому, что не прочли ни одной книжки по языку.
Читайте книги - и будет Вам щастте.
На счет книги, какую посоветуете?
Разобрался, компиляция прошла. Спасибо.