Кто любит RISC в жизни, заходим, не стесняемся.
Сб ноя 24, 2018 19:42:41
Почему этот код вызывает ошибку в Keil 5 (на C++)?
Портирую код с AVR, затык на ровном месте:
- Код:
unsigned char portlcd = 0; //ячейка для хранения данных порта микросхемы расширения
const unsigned char rr = 0b01001110;
I2C_SendByteByADDR(portlcd|=0x04,0b01001110);
строки 2 и 3 вызывают ошибки:
user\lcdtwi.cpp(5): error: #65: expected a ";"
user\lcdtwi.cpp(73): error: #18: expected a ")"
Что не так?!
Сб ноя 24, 2018 19:56:30
Тяжело сказать, не видя остального кода.
В каком месте вызываете функцию I2C_SendByteByADDR ? Не там ли, где коду обитать недопустимо ?
Сб ноя 24, 2018 20:08:17
на сколько я знаю, префикс 0b (для двоичных констант) не является стандартным для Си
Сб ноя 24, 2018 20:21:13
Как заставить Keil его понимать?
Сб ноя 24, 2018 20:27:37
Двоичные константы появились в С++14. Умеет keil C++14?
ЗЫ: гугл говорит, что умеет. Включи его поддержку.
Последний раз редактировалось
VladislavS Сб ноя 24, 2018 20:31:50, всего редактировалось 1 раз.
Сб ноя 24, 2018 20:31:11
Умеет keil C++14?
Умеет, по крайней мере если компилятор от ARM выбрать.
Сб ноя 24, 2018 20:32:41
А где он выбирается?
Сб ноя 24, 2018 20:37:49
В настройках проекта вестимо. Там вкладок то с гулькин нос. Вангую она С/С++ называется.
Сб ноя 24, 2018 20:42:35
Ну и где?
- Вложения
-
- Безымянный.png
- (16.95 KiB) Скачиваний: 1531
Сб ноя 24, 2018 20:50:21
DENIS451, ты издеваешься? Вкладку Target открой и выбери компилятор 6-й версии.
Сб ноя 24, 2018 20:55:25
Первая же картинка в гугле.Спойлер
Не использую не значит не видел. Естественно, я знаю его возможности и мне они не подходят. Потому и не использую.
Последний раз редактировалось
VladislavS Сб ноя 24, 2018 20:57:26, всего редактировалось 1 раз.
Сб ноя 24, 2018 20:56:56
VladislavS писал(а):Двоичные константы появились в С++14.
В GCC даже в Си они поддерживаются.
Сб ноя 24, 2018 21:00:49
Спасибо, сделал как на картинках, вроде заработало.
Но теперь появляются какие то подозрительные крестики в редакторе кода - см. 4.png
- Вложения
-
- 4.png
- (80.11 KiB) Скачиваний: 318
-
- Безымянный3.png
- (17.26 KiB) Скачиваний: 280
-
- Безымянный2.png
- (22.61 KiB) Скачиваний: 539
Сб ноя 24, 2018 21:07:51
VladislavS писал(а):Двоичные константы появились в С++14.
В GCC даже в Си они поддерживаются.
Это конечно замечательно, но потом появляется такой
DENIS451, жертва нестандартных расширений GCC - Аааа! Всё пропало!!!
Сб ноя 24, 2018 21:17:53
С крестиками я уже сам разобрался, похоже Keil не мог найти файл исходников в директории "user" сам, а вот компилятор почему то смог.
Сб ноя 24, 2018 21:18:54
Как заставить Keil его понимать?
отказаться от двоичных констант, использовать те, которые обязаны понимать
ВСЕ компиляторы Си: десятичные, восьмеричные или шестнадцатеричные
Сб ноя 24, 2018 21:26:45
Либо использовать С++ компилятор даже для С кода. Тогда, например, можно разряды отделять вот так 0b0000'1111'0000'1111 или 10'000.
Сб ноя 24, 2018 22:21:04
Рано радовался, после переключения на компилятор v6 проект собирается без ошибок, только в контроллере он
перестаёт работать!
Сб ноя 24, 2018 22:37:45
Проц на 72 МГц включил и FLASH_Latency_2 не поставил?
PS: Или опять BOOT0 не туда перемкнут ?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.