Pull to refresh
28
0
Дмитрий @nephrael

Разработчик ПО

Send message
Они в этом микроконтроллере достаточно навороченные, число регистров конфигурации гораздо больше 4-х.

В данном МК их всего 3 и, в случае когда не требуется использование ОСРВ, лучше задействовать SysTick как один дополнительный таймер для вещей некритичных к точности (например моргание светодиодом, подсчёт периодов) с кратным всем периодам (у меня чаще всего SysTick считает миллисекунды), а внутри уже последовательно считать периоды для каждого таска:

void SysTick_Handler(void)
{
    LED_Blink();
    
    static unsigned task1 = SECONDS(1);
    
    if(!(task1--))
    {
        LED_Blink();        
        task1 = SECONDS(1);
    }

    static unsigned task2 = MILLISECONDS(254);
    
    if(!(task2--))
    {
        UART_Handler();        
        task2 = SECONDS(1);
    }
}
Если честно, то косяки, в основном, малозначительны и решаемы.
Но всё равно неприятно убить весь день, а потом обнаружить проблему в errata.
Сейчас как раз применяем данные МК, но не экономии ради. Дело в том что ВПК и приближенные ведомства, в связи вводом санкций, запретили использовать зарубежные электронные компоненты (не все, а только те, аналоги которых не производят в России и СНГ). И на данный момент МК от Миландра — самое разумное решение.

Из плюсов могу отметить:
+ качественное (понятно почему) ядро МК.
+ хорошая производительность
+ низкое энергопотребление
+ 3 типоразмера (48 выводов, 64 и 132) на любой случай жизни

Из минусов:
— Цена (МК с приёмкой 5 составляет около 80% стоимости платы)
— Неадекватная работа JTAG (чтобы отладить АЦП нужно подключаться к JTAG_A, а для отладки UART необходимо подключиться к JTAG_B)
— Невозможность назначить прерывание по фронту (только по-значению), выкрутились из данной ситуации использованием компаратора, АЦП и одним из режимов таймера (из чего вытекает следующая проблема)
— Всего 3 таймера
— Слабая поддержка. На мой комментарий от 9 ноября 2014 года до сих пор не поступило ответа хотя проблема до сих пор актуальная
— Огромное количество аппаратных ошибок, которые можно взглянуть в errata (53 страницы ошибок)

В данный момент я не рекомендую переходить на данный МК, если есть возможность выбора.
И, как обычно, хотелось бы верить, что текущая ситуация станет стимулом развития российской радиоэлектронной промышленности.
У этих МК JTAG — основная проблема, две штуки внутри необходимы для совместной отладки АЦП и UART.
Небольшая выдержка из документации:
JTAG_A
В качестве выводов интерфейса используются выводы порта B, совмещенные с выводами данных внешней системной шины, выводами таймера 3, выводами UART1 и UART2 и CAN1, использование которых при отладке запрещено
JTAG_B
В качестве выводов интерфейса используются выводы порта D, совмещенные с каналами АЦП, выводами каналов Таймера 1 и 3, UART2 и SSP2, использование которых при отладке запрещено
Хотелось бы посмотреть на ассортимент, так как сам увлекаюсь ножами.
Особенно порадовал товар с поразительным названием и описанием: natropinkah.ru/shop/247/3432/
Аналогично жил 2 года с HTC Desire, сейчас купил Motorola Razr MAXX, прошил на кастом, активировал скрипты и сижу радуюсь как ребенок: телефон работает 2-3 суток при активном использовании со средней яркостью (кстати средняя яркость на Razr сопоставима с полной на Amoled версии HTC Desire ) и постоянно включенном 3G.
auto intA = config().value(«Group.IntValue», 100500);
//Все довольно таки просто:
//config().value(«Group.IntValue», 100500) - вернет int, в соотв. с типом 2ой переменной
//при инициализации intA примет тип rvalue, то есть int
//данная декларация аналогична
int intA = config().value(«Group.IntValue», 100500);
Я думаю к середине или к концу недели первая статья (XML, ZIP, Data, Net) будет готова. Вторая к концу след. недели.
Это действительно так, но boost принято рассматривать STL-like библиотеку общего назначения, а POCO всё же ориентирована на скорейшую разработку сетевых приложений. Да и POCO более высокоуровневая, нежели boost.
Добро пожаловать на темную сторону.
Кстати, в Poco вроде есть аналог этого типа.
Да, Any и DynamicAny
Только там не Any, разработчики решили не связываться с RTTI, наверняка поэтому такая «красота».
Однако ваш метод имеет право на жизнь, можно отправить предложение разработчикам.
Но ведь картинка то прикольная
И к тому же возможны преобразование Int -> string, но не всегда наоборот (ваш К.О.)
Вопрос стоит скорей, возможно ли использовать такой код в рамках стандарта C++03 и без RTTI
string text = config().value("Group.ValueText");
int integ = config().value("Group.IntValue");

И насколько данный код будет производителен.
Так в том то и дело, что если вы используете POCO, то вам не нужно обременять себя заботой о ведении проекта с дополнительными библиотеками. Как следствие отпадает необходимость в обновлении, перекомпилировании.
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity