![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
neiver
Участник-
Постов
212 -
Зарегистрирован
-
Посещение
-
Начинать надо с того, что COM порт вообще и его реализация в Windows в частности, не гарантирует безошибочной передачи данных. То есть рассчитывать на это нельзя, и контроль и/или обеспечение целостности данных надо реализовывать в протоколе обмена. Поврежненный пакед должен отбрасываться и если нужно передаваться повторно. По возможным причинам. У стандартного аппаратного СОМ порта есть внутренний буфер, как правило размером 15 байт. Это не тот буфер, который задается в SetupComm. Если драйвер порта по каким-то причинам не успеет прочитать этот буфер, то принятые байты теряются, о чем извещают соответствующие флаги возвращаемые ClearCommError. Приоритет пользовательского процесса не влиет на приоритет драйвера СОМ порта при обработке прерываний.
-
Гуглить "инверсия приоритетов freertos".
-
Я как-то вот такое делал: http://we.easyelectronics.ru/Soft/prostoy-...oder-ik-du.html
-
выделение памяти malloc
neiver ответил winniethepooh тема в Операционные системы
Это особенности реализации конкретных аллокаторов. В keil аллокатор оптимизирован под небольшие объемы памяти. -
C++ c шаблонами
neiver ответил esaulenka тема в Программирование
Параметры шаблона должны быть константами времени компиляции, иногда можно константы времени компановки(но не все компиляторы это едят, хотя ГЦЦ должен). То есть Объект Settings должен быть размещен по известному в точке инстанцирования адресу, хотя-бы во время линковки. -
Первые ссылки из гугла: https://artofcode.wordpress.com/2010/12/12/...m-stdstreambuf/ https://msdn.microsoft.com/en-us/library/aa...3(v=vs.60).aspx Надо написать свой класс унаследованный от streambuf, в нем реализовать соответствующие функции вывода. Потом связать объект своего streambuf с потоком: std::cout.rdbuf(&my_streambuf);
-
Можно так-же как и printf перенаправить, переопределить функцию низкоуровневого вывода: size_t __write(int handle, const unsigned char * buffer, size_t size) А можно средствами C++ - реализовать свой std::streambuf и передать его в cout.
-
Ищу простой протокол для радиосети
neiver ответил z-ram тема в Wireless/Optic
IEEE 802.15.4? -
Дисплей + тачскрин.
neiver ответил 4ulabekmalekyla тема в Средства индикации
На счет ЖК матрицы не скажу точно, заказчики используют какую-то Samsung-овскую IPS матрицу, модель не знаю. На счет по-штучно тоже не знаю, попробуйте написать запрос на [email protected], что нужны образцы на попробовать, может и продадут. Я если что смогу проконсультировать на счет протокола обмена и т.д. -
Дисплей + тачскрин.
neiver ответил 4ulabekmalekyla тема в Средства индикации
В качестве тачскрина могу порекомендовать свою разработку: http://zaprib.ru/catalog_products/avionika/modul_sensornyj/ Инфракрасный, мультитач 2 точки, фактическое разрешение более 1024х1024. Разрабатывался для авиации со всеми вытекающеми. На данный момент доступна модель 10.4''. И да, физическим лицам в розницу не продают :) -
Преобразование fixed point в строку
neiver ответил sigmaN тема в В помощь начинающему
А у меня статейка по этому поводу есть: http://we.easyelectronics.ru/Soft/preobraz...ey-tochkoy.html -
Ну например, для всяких алгебраических типов данных перегрузка операторов однозначно полезна. Вместо какого-нибудь: c = sqrt(complex_add(complex_mul(a, a), complex_mul(b, b))); можно записать: c = sqrt(a * a + b * b); Существенно улучшает читаемость кода и уменьшает вероятность ошибок. Перегружать операторы конечно надо так, чтоб их семантика была очевидна. Плохой пример: MyArray<int> array; ... array = 10; Если оператор присваивания перегружен. Что он может делать с массивом? Делает размер массива равным 10? Или присваивает всем элементам массива значение 10? Или только первому элементу?
-
Какой svn
neiver ответил SergeyVas тема в В помощь начинающему
Кстати на счет симтем контроля версий и разработки схем и печатных плат. Altium поддерживает интеграцию с SVN. И даже дифы схем и плат умеет показывать. По "altium svn" гуглится много интересного. Git напрямую не поддерживается, но можно прикрутить через git-svn. Однако, я демонстрировал работу Альтиума с СВН-ом ребятам схематехникам, конструкторам ПП. Показывал им ветки, дифы, хранение истории и разных ревизий, как можно сделать централизированную библиотеку шаренных компонентов. Сказали, что очень круто, но работают всё равно по старинке, каждый пилит свою плату на своеё машине, изредка копируя ревизии в шаренную папку на сервере. Они считают им так удобнее. -
Вы чего-то странного хотите. Регистры R0...R3 сохраняются и восстанавливаются в прерываниях аппаратно. Если обработчику прерываний их не хватает, то будут использованы и остальные регистры. Оставьте регистры компилятору, он неплохо разбирается как и когда их использовать.
-
Стек ZigBee
neiver ответил maegg тема в Wireless/Optic
BitCloud вроде бы. Больше ничего не припомню.