-
Постов
1 454 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент esaulenka
-
Как делить программу на объекты?
esaulenka ответил ViKo тема в Программирование
Сейчас Вам в ответ дефайн на три страницы нарисуют ;-) -
Как делить программу на объекты?
esaulenka ответил ViKo тема в Программирование
Похожую идею использует Nordic в своих библиотеках. Они используют это для раздачи событий в разные модули. В линкере объявлена секция. Каждый модуль, который подписывается на событие, с помощью спец-макроса кладёт в эту секцию указатель на коллбэк, который надо вызвать по этому событию. Модуль, который события раздаёт (он один), при каждом событии с помощью другой дефайн-магии бегает от начала до конца этой секции и вызывает коллбэки. Секций, на самом деле, несколько, каждая для своего типа событий (и, соответственно, своего модуля, который это раздаёт). Ну так вот. Я, конечно, недостаточно глубоко въехал в эту тему, но единственные цензурные слова по этому поводу - трэш, ад, ужас, содомия. Оно, конечно, очень гибко в плане конфигурирования (подключил модуль - и, оп, он автоматически на всё подписался), но IDE, которая как-то показывает эти зависимости, мне неизвестна. Шаг в сторону - и всё. Не работает. Как, почему, какие тут взаимосвязи... И это за меня всё сделали, мне ничего писать не надо (а это не одна сотня строк исходника), только модули подключить. В общем - нет, никогда и ни за что! -
Удлинение кабеля связи с радаром
esaulenka ответил Herz тема в В помощь начинающему
Дурацкий вопрос. Смотрю каталог http://www.jason.co.id/misc/Koden/mds50r63r-.pdf Разговор идёт о линии связи антенна <> control box или control box <> компьютер ? Потому что в первом случае про UTP нигде не сказано, а во втором, мне кажется, не должно быть особых проблем открутить кабель. -
Linux64: C:32+nasm:32 параметры
esaulenka ответил AA55 тема в Программирование
Смотреть, конечно же, в документацию. Начать можно с https://en.wikipedia.org/wiki/X86_calling_conventions Особое внимание обратить на то, что там нигде не написано "вы можете свободно портить ebx". -
На блок схеме три канала Primary Flight Computer. Всегда Ваш, Капитан О.
-
Не давать советы в области, в которой не разбираешься - хорошая, правильная привычка. Этому файлу 8 лет скоро будет. Так что довольно условно поддерживают...
- 34 ответа
-
- clearitpendingbit
- прерывание
-
(и ещё 3 )
C тегом:
-
Ну, скажем, код __pv вполне может стоить человекожизни. Потому что искать случайную опечатку в этой красоте - убицца просто. Имхо - оставить всё как есть или медленно и печально переносить на std::vector или какой-нибудь самодельный vector2d.
-
Кстати, на cppreference говорят, что static_assert есть и в c11 (не путать с c++11). Можно не изобретать свои велосипеды, а использовать стандартный, из assert.h
-
Я потыкал Ваш код на godbolt.org - только gcc и умеет его компилировать. Все остальные ругаются на трюки с приведением типов.
-
Ну так элементарно же. В боинге ломается один из каналов - некое магическое отказоустойчивое устройство переключает работу на резервный, полёт продолжается. В вашем изделии ломается один из контроллеров - шаговик встаёт (или ползёт в непредсказуемую сторону).
-
Ну значит сначала надо спроектировать систему. Потому что два контроллера, которые одновременно управляют двумя половинками одного двигателя, с куда бОльшей вероятностью обеспечат невозможность выполнить команду.
-
Задача-то какая? Если это не самолёт, который не умеет зависать в воздухе, и в любой ошибочной ситуации вашему двигателю можно просто никуда не двигаться, надо именно так и поступить. Максимально тупое устройство (читай - с минимумом ошибок), которое в любой непонятной ситуации всё (или только силовую часть, неважно) обесточивает.
-
Ну да. Но в схеме из третьего сообщения помеха греет резистор делителя и стабилитрон (в наших изделиях так же. У artemkad, видимо, тоже), а идея из второго сообщения, если я её правильно понял, всю помеху рассеивает на защитном стабилитроне.
-
При включении, как посоветовал Plain, есть. Другой вопрос, что совершенно неочевидно, зачем вешать защиту прямо на входную ногу устройства, а не на ногу защищаемого элемента (читай - контроллера).
-
Audi 80 изнутри ни разу не видел, но из общих соображений: - аккумулятор - аналоговый сигнал 10..14 вольт - уровень топлива - аналоговый сигнал 0..14 вольт - уровень омывайки - дискретный сигнал 0..12 вольт - датчик тепературы - что-то вроде переменного резистора. Запитывают его от генератора тока, или просто делают делитель - никогда не интересовался. - датчик оборотов - либо датчик холла с 5 (12) вольтовыми импульсами (десятки импульсов на оборот), либо индуктивный датчик (см. в гугле "ДПКВ осциллограмма") - лямбда зонд - синусоида с частотой единицы герц и амплитудой в несколько сотен милливольт - сигнал оборотов с катушки зажигания или форсунки. Пакостный сигнал с ярко выраженными "индуктивными" выбросами. Подробности на картинках "катушка зажигания осциллограмма". Опторазвязок никогда нигде не видел. Делитель, защита, может ещё небольшой RC-фильтр. Если есть хоть какой-то мозг, скорее всего, есть и диагностика, и, скорее всего, это однопроводной 12-вольтовый уарт. Какой стандарт был в те лохматые годы, не интересовался...
-
C_DEBUGEN http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/CEGCJAHJ.html Но у меня руки не дошли проверить...
-
STM32F030F4 определить байт во Flash
esaulenka ответил Vlad_G тема в ARM, 32bit
У него синтаксис не очень удобный. Я и сам им пользовался, но разбираться через год-другой в скрипте довольно сложно... В итоге пользуюсь питоном с библиотекой intelhex - просто и наглядно. -
Switch и прием команд
esaulenka ответил Alex_Golubev тема в В помощь начинающему
Точнее, в C99, если я ничего не путаю. И должно заработать в C++20. Жалко, что даже в gcc в порядке личной инициативы раньше не внедрили... -
STM32. Перенастройка UART.
esaulenka ответил I_am_Lexx тема в ARM, 32bit
Включить-выключить прерывания в USARTx->CRx можно прямо на ходу (сам так делаю постоянно). Поставить бит DMAT в USARTx->CR3, подозреваю, тоже можно (не проверял). Проинициализировать DMA можно один раз, дальше просто запускать в нужный момент. Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции. -
STM32. Перенастройка UART.
esaulenka ответил I_am_Lexx тема в ARM, 32bit
Что именно Вам надо перенастроить? И слово "нельзя" - это про идеологию. Если там идеология "использовать можно только HAL", то, боюсь, никакой готовый код товарищу не поможет... -
Что именно мы должны увидеть на картинке? (и на какой из двух?)
-
Ну я вот изучил. BOOT0 в нуле (так нам обещает Donker), main flash memory, как и должно быть. Настройки JLink'а тоже стандартно-обыкновенные. Мысль не раскроете? Для средних умов, таксказать. PS Donker, может, камень сдох? Не пробовали какой-нибудь другой экземпляр?
-
Наверное, не все эти мегабайты - в ОЗУ? :-) RAM - начиная с нуля и до 64к, флеш и прочие SFR - могут быть дальше. По факту, у младших камней они также укладываются в 64 к, но ядро, в теории, умеет работать и с бОльшими объемами памяти.
-
Как работает DMA в STM32?
esaulenka ответил di4zerus тема в ARM, 32bit
У меня прямо перед носом reference от STM32F4. И там слова "карусель" нет, есть раздел Arbiter. И там всё просто: у кого выше приоритет (или меньше номер стрима при равных приоритетах) - тот и первый. Другой вопрос, что я использую DMA с низкозагруженными каналами (UART на десятках-сотне кбит/с, SPI с сотней байт и т.д.), и о приоритетах даже не думаю - запас получается на порядки: пока DMA ждёт освобождения высокоприоритетной периферии, он может обслужить низкоприоритетную. Вот когда мне захочется затолкать что-то большое в периферию с собственным FIFO (что там у STM'ок есть? Только USB с ethernet'ом?) или использовать режим memory-to-memory, вот тогда придётся думать... -
Keil MDK-ARM ошибка: L6236E
esaulenka ответил tea1975 тема в ARM, 32bit
Варнинг был? Был. Следует считать любой (ну, почти любой) варнинг как предупредительный выстрел.