Добавил новую функцию в библиотеку. Добавил строчку имени функции в файл keywords.txt. Работает., но почему она не выделяется в тексте скетча красным цветом ? Фиг бы, но неудобно читать код. Где-то уже видел такой вопрос, но не смог найти. С уважением.
Код (C++): #include "PlainFFT.h" PlainFFT FFT = PlainFFT(); /* Create FFT object */ ... FFT.DTMFPeak(vReal, samples, samplingFrequency, &x, &v); /* Freq1 and Freq2 */ Функция должна (.DTMFPeak) выделяться красным, но увы. Код компилируется и работает исправно.
Ariadna-on-Line - у вас в файле keywords указана функция dtmfPeak, а в библиотеке используется DTMFPeak - разницы не замечаете?
Замечаю, но в остальном коде тоже разнобой с заглавными и строчными буквами. Но всё исправно раскрашено. Это-то меня и озадачивает !
зачем? Скучно живется? В Си имена переменных и функций регистрозависимы, функции dtmfPeak и DTMFPeak - это разные функции. По уму ни один кейворд, в котором регистр точно не совпадает с именем функции - работать не должен.
Странно, что у вас остальные работают с пробелом. Блин, у вас стоит другая библиотека, из которой и берутся все выделения, а ваш кейворд просто не работает
У меня есть подозрение, что Ардуино ИДЕ где-то хранит оригиналы библиотек с момента их установки. Поэтому редактирование оригинала обозначается нераскрашиванием новых функций.
нет, не хранит. Попробуйте изменить оригинал, например сделать в коде библиотеки ошибку - компиляция сразу остановится, так как ИДЕ всегда работает с вашим оригиналом, а не с какой-то своей копией. Другой вопрос. что вы в этой теме показали себя очень неаккуратным программистом - путаете регистры, не уделяете внимания синтаксису... на этом фоне не удивлюсь. если у вас куча версий одной и той же библиотеки лежит в libraries...или вы сам файл keywords.txt положили не туда
Ха. Оказалось - ИДЕ использовал кейворд.тхт библиотеки arduinoFFT (arduinoFFT. cpp + arduinoFFT.h). Хотя функции брал - из биб-ки PlainFFT (PlainFFT.cpp + PlainFFT.h). Удалил его (кейворд.тхт) временно из arduinoFFT, и ИДЕ "ухватился" за кейворд из PlainFFT. Неисповедимы пути... однако. Подредактировал файл - теперь всё ОК. Большое спасибо господа.
просто для информации - ИДЕ до лампочки названия библиотек, он учитывает только имена файлов *.cpp *.h внутри любой папки в каталоге libraries. Поэтому хранить в этом каталоге несколько версий одной и той же библиотеки - верный путь к постоянным глюкам и ошибкам, даже если вы переименовали каталог старой библиотеки в какое-то совершенно другое имя