Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

ГЫММ...
А у мня чего-то попытка удаления из группы параметра без умолчания неудачно завершилось...
Ладныть - раз возможно и с одним "умолчамсом" бум разбираться где собак пробегал.
:roll:
Реклама
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3698362#p3698362"]И все в один голос "НЕ НАДО ЗАНИМАТЬСЯ"[/uquote]все в голос говорят "попробуй другой инструмент", а не "бросай все")
[uquote="BOB51",url="/forum/viewtopic.php?p=3698362#p3698362"]Вместо ответов на вобщем-то типовые для Си вопросы, разьяснения по которым мне требовались.
Это хотя бы трактовка применения extern с точки зрения имеющих Сишный опыт...[/uquote]я, честно говоря, не понял довольно сумбурной формулировки того вопроса.
[uquote="BOB51",url="/forum/viewtopic.php?p=3698362#p3698362"]arkhnchul
адуринкина IDE отнюдь не 600 мегабайт!![/uquote]свежая только распакованная, еще до первого запуска:

Код: Выделить всё

arkhnchul@arkhost-scow:~/progs/elec/arduino-1.8.9$ pwd
/home/arkhnchul/progs/elec/arduino-1.8.9
arkhnchul@arkhost-scow:~/progs/elec/arduino-1.8.9$ du -h --max-depth 0
576M
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

arkhnchul
Еще раз повторюсь - программное обеспечение ардуино IDE включает в себя не только сам дистрибутив, что у Вас показан, но и скрытую часть, подтягиваемую из инета в то время, когда вы производите установку плат (инструменты - менеджер плат-установить/или обновить).
Про ту часть практически никто не упоминает (а может и не ведает)...
:twisted:
Смотри скрытый каталог
C:\Documents and Settings\USER\Local Settings\Application Data\Arduino15
и будет "полно удовольствия"...
:tea:
Кстати этот каталог самостоятельно дистрибутив при переустановке не обновляет и возможные повреждения автоматом не устраняет.
По сему рекомендую на всякий случай делать копии на другой диск для аварийного восстановления хотя бы на случай применения аварийного восстановления системы.
:kill: :kill: :kill:

С теми "параметрами по умолчамсу" разобрался - "не надо наглеть сверх меры"
8)
А вот с применением extern....
В имеющихся примерах видел только в инициализации объекта класса, не имеющего явного объявленного конструктора...
Причем только в *.cpp файле библиотеки класса...
В остальном - трактовка для С++ довольно туманна (где объявляется и зона распространения видимости)...
Пока в неспешных поисках ответа...
Вроде бы тот extern облегчает перекрестный доступ... но в каких рамках?...
:dont_know:
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3698540#p3698540"]Еще раз повторюсь - программное обеспечение ардуино IDE включает в себя не только сам дистрибутив[/uquote]по какому кругу опять пойдем?) Arduino IDE - это только вот этот самый блокнотик, плюс в коробку ещещ кладут компилятор gcc, avrdude и рантайм явы. Остальное - библиотеки.
[uquote="BOB51",url="/forum/viewtopic.php?p=3698540#p3698540"]Смотри скрытый каталог
C:\Documents and Settings\USER\Local Settings\Application Data\Arduino15[/uquote]в этих моих линуксах такого каталога нет и не предвидится)

[uquote="BOB51",url="/forum/viewtopic.php?p=3698540#p3698540"]А вот с применением extern....
В имеющихся примерах видел только в инициализации объекта класса, не имеющего явного объявленного конструктора...
Причем только в *.cpp файле библиотеки класса...
В остальном - трактовка для С++ довольно туманна (где объявляется и зона распространения видимости)...[/uquote]кто на ком стоял?(с)
extern в документации описан имхо достаточно прямолинейно. Лучше пример покажите, с чем конкретно затык.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Увы... линукса у меня нету - ничего сказать не могу - однако судя по структуре IDE там также должен быть дополнительный каталог.
Вот только куда его запихнули - трудно сказать...
:dont_know:
Собственно сам инсталятор как я понимаю только оболочка с минимумом относительно простейших платок с АВРками.
Остальное - выгружается из инета в отдельное место.
Собственно обновления касаются не оболочки, а применяемых компиляторов расширенного диавпазона (или обновления установленных по умолчанию) а затем оболочка работает с уже подкачанным материалом.
Там же - в каталоге внешней загрузки скорее всего и файлы управления надстройками.
Коряво описал - но по фэншую то только специалисту понятно будет как эта "матрешка со скрытыми куколками" устроена.
УВЫ... никто из КОТОВ тем вопросом заниматься не заинтересован...
:(
Пример с extern -
вот тут
https://www.radiokot.ru/forum/viewtopic ... 1#p3673681
под спойлером "вариант3"...
Откуда вытащил идею не помню точно, но из тех же адуринкины библиотек.
:dont_know:
Реклама
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3698684#p3698684"]Вот только куда его запихнули - трудно сказать[/uquote]оно в ~/.arduino15 . Весит мегабайта полтора - я кроме стандартных AVR-ных плат ничего не грузил.
[uquote="BOB51",url="/forum/viewtopic.php?p=3698684#p3698684"]УВЫ... никто из КОТОВ тем вопросом заниматься не заинтересован[/uquote]патамушта уже писали почему) Все, что туда грузится, ровно так же прикручивается к нормальным средам, ко многим - прям буквально так же (залезаем в менюшку ардуины, там менеджер плат или что-то наподобие).
[uquote="BOB51",url="/forum/viewtopic.php?p=3698684#p3698684"]Пример с extern -
вот тут
https://www.radiokot.ru/forum/viewtopic ... 1#p3673681
под спойлером "вариант3"[/uquote]
ага.
здесь extern выступает в чисто C-шном понимании - указание компилятору "вот эту переменную не инициализируй и память под нее не выделяй, ее линкер притащит откуда-то". Иначе чо получается: поскольку переменная (здесь - экземпляр класса) объявлена в заголовочнике, то это объявление "сработает" при компиляции всех файлов, в которые включен этот самый заголовочник, и без extern каждый из получившихся объектников будет иметь собственный экземпляр.
кстати, третий пример вот прям в таком виде не соберется - my_dscrc должен быть объявлен в одном из собираемых файлов без extern.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Котуинко

Сообщение Reflector »

[uquote="arkhnchul",url="/forum/viewtopic.php?p=3698701#p3698701"]кстати, третий пример вот прям в таком виде не соберется - my_dscrc должен быть объявлен в одном из собираемых файлов без extern.[/uquote]
Не обязательно, если включена оптимизация и компилятор посчитает, что методы класса вызывать не нужно т.к. результат их работы все равно не используется, то такой код может собраться. И в современном С++ лучше подход с объявлением/определением в разных файлах не использовать, достаточно в хедере написать:

Код: Выделить всё

inline dscrc my_dscrc;
и все...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Вот и я про то же - extern при наличии *.h заголовков как-то не совсем понятно для чего.
Пример кстати вполне собирающийся - https://www.radiokot.ru/forum/download/ ... ?id=332952
Там ведь надо, чтоб экземпляр класса, инициализированный во внешнем *.cpp файле библиотеки был
доступен в главном файле проекта. Это вместо инициализации и создания экземпляра класса в главном файле проекта...
Тут как бы в главном файле надо указывать, что объект где-то в окружающем пространстве обитает.
Какой extern из тела самой библиотеки? Он же внутри нее сам находится...
:dont_know:
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="Reflector",url="/forum/viewtopic.php?p=3698716#p3698716"]

Код: Выделить всё

inline dscrc my_dscrc;
[/uquote]насколько понимаю, это применимо, если нам нужны только методы класса. Получится так сделать один глобальный экземпляр с изменяемыми полями, как оно делается в случае extern?

[uquote="BOB51",url="/forum/viewtopic.php?p=3698729#p3698729"]Вот и я про то же - extern при наличии *.h заголовков как-то не совсем понятно для чего[/uquote]здрасьте приехали. Вот там оно как раз и пригождается.
[uquote="BOB51",url="/forum/viewtopic.php?p=3698729#p3698729"]Пример кстати вполне собирающийся[/uquote]

Код: Выделить всё

arkhnchul@arkhost-scow:/tmp/inc_test2$ 
arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -c dscrc.cpp -std=c++11
arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -c inc_test2.cpp -std=c++11
arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -o maintst inc_test2.o dscrc.o 
inc_test2.o: In function `setup()':
inc_test2.cpp:(.text+0x10): undefined reference to `my_dscrc'
inc_test2.cpp:(.text+0x12): undefined reference to `my_dscrc'
collect2: error: ld returned 1 exit status
UPD оно собирается в исходном виде, потому что[uquote="Reflector",url="/forum/viewtopic.php?p=3698716#p3698716"]если включена оптимизация и компилятор посчитает, что методы класса вызывать не нужно т.к. результат их работы все равно не используется[/uquote]

Код: Выделить всё

arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -c dscrc.cpp -std=c++11 -fdata-sections -ffunction-sections
arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -c inc_test2.cpp -std=c++11 -fdata-sections -ffunction-sections
arkhnchul@arkhost-scow:/tmp/inc_test2$ avr-gcc -o maintst inc_test2.o dscrc.o -Wl,--gc-sections
при этом никаких упоминаний о чем-то, напоминающем my_dscrc в результате нет:
Спойлер

Код: Выделить всё

arkhnchul@arkhost-scow:/tmp/inc_test2$ objdump -t maintst 

maintst:     формат файла elf32-little

SYMBOL TABLE:
00000000 l    d  .text	00000000 .text
00800060 l    d  .data	00000000 .data
00000000 l    df *ABS*	00000000 _clear_bss.o
00000022 l       .text	00000000 .do_clear_bss_start
00000020 l       .text	00000000 .do_clear_bss_loop
0000ffa0 g       *ABS*	00000000 __DATA_REGION_LENGTH__
00000000 g       .text	00000000 __trampolines_start
00000028 g       .text	00000000 _etext
00000028 g       *ABS*	00000000 __data_load_end
00000000 g       .text	00000000 __trampolines_end
00000028 g       *ABS*	00000000 __data_load_start
00000000 g       .text	00000000 __dtors_end
00800060 g       .data	00000000 __bss_end
00000400 g       *ABS*	00000000 __LOCK_REGION_LENGTH__
00000018 g       .text	00000010 .hidden __do_clear_bss
00810000 g       .data	00000000 __eeprom_end
00800060 g       .data	00000000 __data_end
00000400 g       *ABS*	00000000 __SIGNATURE_REGION_LENGTH__
00000000 g       .text	00000000 __ctors_start
00000000 g       .text	00000018 .hidden __do_copy_data
00800060 g       .data	00000000 __bss_start
00000400 g       *ABS*	00000000 __USER_SIGNATURE_REGION_LENGTH__
00000000 g       .text	00000000 __dtors_start
00000000 g       .text	00000000 __ctors_end
00800060 g       .data	00000000 _edata
00800060 g       .data	00000000 _end
00010000 g       *ABS*	00000000 __EEPROM_REGION_LENGTH__
00800060 g       .data	00000000 __data_start
00000400 g       *ABS*	00000000 __FUSE_REGION_LENGTH__
00002000 g       *ABS*	00000000 __TEXT_REGION_LENGTH__
[uquote="BOB51",url="/forum/viewtopic.php?p=3698729#p3698729"]Там ведь надо, чтоб экземпляр класса, инициализированный во внешнем *.cpp файле библиотеки был
доступен в главном файле проекта. Это вместо инициализации и создания экземпляра класса в главном файле проекта...
Тут как бы в главном файле надо указывать, что объект где-то в окружающем пространстве обитает.
Какой extern из тела самой библиотеки? Он же внутри нее сам находится...[/uquote]я не успеваю за полетом вашей мысли. Отвлекитесь пока от экземпляров классов и вернитесь к простым переменным.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Котуинко

Сообщение Reflector »

[uquote="arkhnchul",url="/forum/viewtopic.php?p=3698738#p3698738"]насколько понимаю, это применимо, если нам нужны только методы класса. Получится так сделать один глобальный экземпляр с изменяемыми полями, как оно делается в случае extern?[/uquote]
Естественно, причем если раньше из-за неопределенного порядка компиляции юнитов приходилось добавлять всякие ленивые функции, иначе можно было обратиться к объекту который к тому моменту еще не создан, то с inline можно создавать header-only либы без никаких сюрпризов. Правда достигается это все той-же ленивой инициализацией, так что применительно к эмбедду могут быть варианты...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

ДЫК... в случае с адуринкой я теми длинными строками не заморачиваюсь.
Там все настройки оптимизатора скрыты.
Вышеприведенный тест-пример именно и нужен (и используется) для свободного вызова метода класса в любом месте - как в главном файле *.ino (*.cpp с main по правилам Си), так и в случае вызова внутри другой, подключенной к *.ino библиотеки.
И такое весьма активно используется встроенными функциями референса.
Пока просто "принял как правило" - работает и достаточно.
Также как и обязательность одного (хоть и фиктивного - в смысле не используемого) явно указываемого аргумента в строчке параметров перед параметром "по умолчанию"...
Как там с разбором "почему" - останется до следующих тест-прожек.
:roll:
Кстати... я ж тот пример (
inc_test2.rar
(2.8 КБ) 324 скачивания
) не в "чистом GCC" запускал на компиляцию, а в адуринке
и замечаний по "неиспользованию" чего-либо не наблюдал, хотя в настройках среды стоит "все" относительно настроек сообщений компилятора. А уж оный в этом случае матюкается на любую некорректность и неиспользуемые фрагменты.
:roll:
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3698994#p3698994"]Вышеприведенный тест-пример именно и нужен (и используется)[/uquote]а работает? не в смысле собирается, а прям вызывает my_dscrc.crc_mlan?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

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

Для любителей ардуино-подобных плат. https://ru.aliexpress.com/item/4000109646917.html
Спойлер

STM32F411CEU6 - CPU 32 бит, 100 МГц. 512КБ Flash 128 КБ ОЗУ.
Изображение

STM32F4.png
(200 КБ) 73 скачивания
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

[uquote="arkhnchul",url="/forum/viewtopic.php?p=3699175#p3699175"][uquote="BOB51",url="/forum/viewtopic.php?p=3698994#p3698994"]Вышеприведенный тест-пример именно и нужен (и используется)[/uquote]а работает? не в смысле собирается, а прям вызывает my_dscrc.crc_mlan?[/uquote]
УГУ...
И не только - я ж пример копировал с того, что в самом референсе встроено.
:roll:
Вот старый рабочий проект (библиотечки для C:\Documents and Settings\User\Мои документы\Arduino\libraries там же в отдельных папках)
test_s9x.zip
(551.11 КБ) 311 скачиваний
только с дисплеем на NJU6432 - к сожалению практически посмотреть в железе вряд-ли у любого получиться... Хотя дисплейчик для работ от аккумулятора НЯМ!!!
Посему...
Соорудю макетуку с DS18b20 и индикацией на ТМ1637 - там и рассмотрим некоторые текущие варианты.
Два дня тархаюсь с тем дисплейчиком - ранее была прожка примитив-теста, но "захотелось по-фэншую" - применить самодельный mxiic, что ранее для DS1307 делал.
АГА - ОБЛОМС.
:)))
Ибо та китаяча платка, что у мня работы с "пассивным" вариантом - т.е. с подтягивающими резисторами (коих Х/З есть там на платке или нету?...я ее в полукорпус подклеял, отрывать ВЛОМ, цеплять "подтяжку" на макетке - ВЛОМ - проще с прожкой помыкаться), без их явной впайки со стороны макетки с адуриньей, не воспринимает. Пришлось к старому варианту возвернуться - только вывод и с активным выходным каскадом.
Вобчемс - набросаю очередной тестик - будет чего конкретно обсудить.
:beer:

Мурик
у той платки наверняка есть торговое имячко, что в менеджере платок указывается - надо его тоже называть однако.
GREATZT STM32F401 вроде... надоть посмотрямс, чего об оном пишуть...
8)
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3699593#p3699593"]УГУ...
И не только - я ж пример копировал с того, что в самом референсе встроено.[/uquote]и это очень странно, ибо не должен. Такой вот минимальный пример, в котором линкер не может выкинуть переменную, даже не собирается
Спойлерtstclass.h

Код: Выделить всё

#ifndef tstclass_H
#define tstclass_H

class TstClass{
    public:
        void foo();
};

extern TstClass bar;

#endif
tstclass.cpp

Код: Выделить всё

#include "tstclass.h"
#include <iostream>

void TstClass::foo(){
    std::cout<<"FOO!!\n";
}
main.cpp

Код: Выделить всё

#include "tstclass.h"

int main(){
    bar.foo();
    return 0;
}
кстати, за

Код: Выделить всё

extern dscrc dscrc;
в приличном обществе бьют канделябрами) переменную технически можно назвать так же, как и тип, но не нужно.
[uquote="BOB51",url="/forum/viewtopic.php?p=3699593#p3699593"]у той платки наверняка есть торговое имячко[/uquote]официального нет. Обычно такие безымянные минимальные платки с распаянными STM-ками называют "Blue Pill".
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

К сожалению - имя у платки ДОЛЖНО БЫТЬ
Поскольку именно его указываем при выборе платки для вкладки менеджера плат.
А там не только blue pill - это вот такая
http://img.radiokot.ru/files/20529/1kukf69ch0.JPG
они также в нескольких вариантах там имеются - надо конкретный выбирать.
Я уже выше приводил список ссылей на ресурсы "дружественных дополнений"
для работы с иными (окромя АВР платками)
На всякий случай повторюсь:

Код: Выделить всё

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
https://mcudude.github.io/MajorCore/package_MCUdude_MajorCore_index.json
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_atmega8_series_index.json
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json
http://www.dragino.com/downloads/downloads/YunShield/package_dragino_yun_test_index.json
вот эта дает доступ к STMкам (предварительно надо установить штатный комплект для ардуино - DUE - он подтягивает компилятор для АРМов)
https://github.com/stm32duino/BoardMana ... index.json
А там уже лазим по вкладкам менеджера плат на вопрос "а чего мы можем без дополнительной мозготрепки использовать?"
Причем эти разделы обновляемые -как появляется новае официальная платка - появляется и обновление.
8)
Теперь о том extern...
Смысл ведь не в переменной, а в использовании внешних функций превращенных в методы класса.
И вот этот типично книжный вариант

Код: Выделить всё

std::cout<<"FOO!!\n";
он к сожалению для ПК ибо у адуринки (да возможно и у иных МК) вывод строки через стандартный поток не делается.
У адуриньи аналогия в подразделе Serial или Stream... (или Soft serial и прочие - SPI, wire...)
Кстати примеры с подобными строчками весьма мозги тупят...
В случае с адуринкой и терминалкой (минимальный комплект тестирования-индикации)
активируется аппаратный СОМ порт

Код: Выделить всё

Serial.begin(speed)
Serial.begin(speed, config)
а затем пользуемся

Код: Выделить всё

Serial.println(val) 
Serial.println(val, format)
...
:roll:
Да и само extern - в принципе эту роль исполняют в достаточном значении содержимое заголовочников...
При соответствующем описании как-то не совсем понятна избыточность и место... того extern...
Одначе раз имело место проявление - интересно бы понять откуда оное произросло...
Как вариант - спецнасторйки в "промежуточной надстройке" между средой и компиляторами - одначе ТУДА я уж точно не полезу копаться!
Ну да пока "отложить до прецидента".
:write:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]К сожалению - имя у платки ДОЛЖНО БЫТЬ
Я уже выше приводил список ссылей на ресурсы "дружественных дополнений"
для работы с иными (окромя АВР платками)[/uquote]
добавлю ссылку...
для неизвестной платки можно и самому поддержку добавить, например для вышеперечисленной платки на STM32F401CCU6 народ уже сам сделал:
https://github.com/stm32duino/Arduino_C ... issues/545
см. файлик "401cc.zip"
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Ну этот раздел - создание поддержки самолапных платок ПОКА НЕ ДЛЯ МЕНЯ.
(Там похоже противнейших "длиннострочек" моного... :facepalm: :o )
Пользуюсь "чужими".
:beer:
Может когда в будущем и до тех "прописей" доберусь.
:roll:
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Котуинко

Сообщение arkhnchul »

[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]К сожалению - имя у платки ДОЛЖНО БЫТЬ[/uquote]ну так его нет.
[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]А там не только blue pill - это вот такая[/uquote]это общее околожаргонное обозначение для всех таких вот платок. Плюс модель контроллера, который стоит на конкретной плате.
[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]Причем эти разделы обновляемые -как появляется новае официальная платка - появляется и обновление[/uquote]ну так эта платка не "официальная")
[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]Теперь о том extern...
Смысл ведь не в переменной, а в использовании внешних функций превращенных в методы класса[/uquote]смысл как раз в переменной, каковой является экзепмляр класса.
[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]И вот этот типично книжный вариант

Код: Выделить всё

std::cout<<"FOO!!\n";
он к сожалению для ПК ибо у адуринки (да возможно и у иных МК) вывод строки через стандартный поток не делается.[/uquote]а это без разницы. Пример демонстрирует ожидаемое поведение для extern.
[uquote="BOB51",url="/forum/viewtopic.php?p=3699760#p3699760"]Да и само extern - в принципе эту роль исполняют в достаточном значении содержимое заголовочников...
При соответствующем описании как-то не совсем понятна избыточность и место... того extern...[/uquote]она непонятна потому, что вы упираетесь в функции и методы класса. Опять, extern - он про переменные (по крайней мере здесь).
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

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

BOB51 писал(а):у той платки наверняка есть торговое имячко
Ищется по названию микроконтроллера - STM32F411CEU6.
BOB51 писал(а):GREATZT STM32F401 вроде...
GREATZT это название магазина продавца. Плата есть и в других магазинах.

Чем интересна плата? Тем что при небольшой цене в ней МК с хорошим набором периферии, среди которой 12-ти битный АЦП, 3 I2C, 5 I2S, 5 SPI, 3 USART, 8 таймеров из которых 2 32-ух битные, SDIO (интерфейс для SD карты), USB OTG (может быть хостом и устройством), RTC, 2 сторожевых таймера и многое другое. В какой ардуине с ATmega есть подобный набор периферии?
СпойлерИзображение
1.png
(109 КБ) 53 скачивания
Система тактирования, позволяющая гибко управлять тактовой частотой в зависимости от того что нужно производительность или низкое потребление.
СпойлерИзображение
2.png
(117.82 КБ) 50 скачиваний
Процессорное ядро интересно тем что аппаратно поддерживает плавающую точку что существенно ускоряет вычисления.
Ответить

Вернуться в «Разные вопросы по МК»