Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Кто любит RISC в жизни, заходим, не стесняемся.
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Почему этот код вызывает ошибку в 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 ")"

Что не так?!
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение Аlex »

Тяжело сказать, не видя остального кода.
В каком месте вызываете функцию I2C_SendByteByADDR ? Не там ли, где коду обитать недопустимо ?
Реклама
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение ARV »

на сколько я знаю, префикс 0b (для двоичных констант) не является стандартным для Си
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Как заставить Keil его понимать?
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

Двоичные константы появились в С++14. Умеет keil C++14?

ЗЫ: гугл говорит, что умеет. Включи его поддержку.
Последний раз редактировалось VladislavS Сб ноя 24, 2018 20:31:50, всего редактировалось 1 раз.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение Reflector »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3512309#p3512309"]Умеет keil C++14?[/uquote]
Умеет, по крайней мере если компилятор от ARM выбрать.
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

А где он выбирается?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

В настройках проекта вестимо. Там вкладок то с гулькин нос. Вангую она С/С++ называется.
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Ну и где?
Изображение
Вложения
Безымянный.png
(16.95 КБ) 1647 скачиваний
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

DENIS451, ты издеваешься? Вкладку Target открой и выбери компилятор 6-й версии.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

Первая же картинка в гугле.
СпойлерНе использую не значит не видел. Естественно, я знаю его возможности и мне они не подходят. Потому и не использую.
Последний раз редактировалось VladislavS Сб ноя 24, 2018 20:57:26, всего редактировалось 1 раз.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение Мурик »

VladislavS писал(а):Двоичные константы появились в С++14.
В GCC даже в Си они поддерживаются.
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Спасибо, сделал как на картинках, вроде заработало.

Но теперь появляются какие то подозрительные крестики в редакторе кода - см. 4.png
Вложения
4.png
(80.11 КБ) 340 скачиваний
Безымянный3.png
(17.26 КБ) 314 скачиваний
Безымянный2.png
(22.61 КБ) 561 скачивание
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

[uquote="Мурик",url="/forum/viewtopic.php?p=3512344#p3512344"]
VladislavS писал(а):Двоичные константы появились в С++14.
В GCC даже в Си они поддерживаются.[/uquote]Это конечно замечательно, но потом появляется такой DENIS451, жертва нестандартных расширений GCC - Аааа! Всё пропало!!!
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

С крестиками я уже сам разобрался, похоже Keil не мог найти файл исходников в директории "user" сам, а вот компилятор почему то смог.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение ARV »

[uquote="DENIS451",url="/forum/viewtopic.php?p=3512296#p3512296"]Как заставить Keil его понимать?[/uquote]
отказаться от двоичных констант, использовать те, которые обязаны понимать ВСЕ компиляторы Си: десятичные, восьмеричные или шестнадцатеричные
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

Либо использовать С++ компилятор даже для С кода. Тогда, например, можно разряды отделять вот так 0b0000'1111'0000'1111 или 10'000.
DENIS451
Прорезались зубы
Сообщения: 213
Зарегистрирован: Вт сен 09, 2008 18:17:27

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение DENIS451 »

Рано радовался, после переключения на компилятор v6 проект собирается без ошибок, только в контроллере он
перестаёт работать!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Почему этот код с AVR вызывает ошибку в Keil 5 (на C++)?

Сообщение VladislavS »

Проц на 72 МГц включил и FLASH_Latency_2 не поставил?

PS: Или опять BOOT0 не туда перемкнут ? :)
Ответить

Вернуться в «ARM»