Перейти к содержанию
    

haker_fox

Модератор
  • Постов

    7 287
  • Зарегистрирован

  • Посещение

  • Победитель дней

    11

Весь контент haker_fox


  1. Изначально так и было сделано. Но проект получается громоздким. Это только тут я в качестве примера привёл три листа. На самом деле есть ещё много листов с подобной адресацией. Согласен. Похоже, что это единственный разумный компромисс.
  2. Добрый день, коллеги! Есть лист, где имеется микросхема с адресной шиной. Таких листов в моём проекте - 3 шт. Т.е. всего будет три шины по три бита или 9 линий. Весь этот набор сигналов должен заходить в один лист. Но Altium 23.6.0 при компиляции проекта выдаёт множество различных ошибок и предупреждений. Перечитал официальное руководство по Multi-Channel Design, и не смог найти информацию о допустимости подобного. Можно ли это сделать? И как? Что должно быть в именовании меток в листе Microcontroller Unit? Если это невозможно, то как иначе красиво задать каждому расширителю портов PCA9534 уникальный адрес на каждом из трёх листов?
  3. Он поддерживает стандартную кодировку Windows-1251? Некоторые, например, от МЭЛТ - поддерживают. Тогда всё проще: устанавливаете необходимую кодировку файла исходника, а строки, предназначенные для дисплея оформляете естественным образом: helloMsg [] = "Привет, Мир!";
  4. Предположу, что такой род появляется от словосочетания "микросхема АЦП". Тогда на первое место здесь уже выходит имя существительное женского рода. Но я не сторонник такого подхода. Для меня АЦП - прежде всего - преобразователь.
  5. Простите меня. Я больше так не буду: если где-то увижу Ваш ответ в теме, похожий на тот, что независимо созрел в моей собственной голове, незначительно отличается от Вашего и может быть выражен иными словами, буду молчать!
  6. Может быть это Вам поможет💗
  7. Всё зависит от области применения микроконтроллера. Думаю, что если он стоит в каком-либо лабораторном приборе, то зависание микроконтроллера - ведь неприятная, но не приводящая к экономическим потерям и т.п. результатам. Если же такой МК стоит на плате привода лифта, то внешний сторожевой таймер - единственный допустимый вариант. P.S. На счёт лабораторного оборудования, конечно, не всё так просто. В случае зависания какого-нибудь вольтметра, измеряющего непрерывно процесс в течение нескольких суток, экономический ущерб тоже может оказаться довольно большим. P.S.S. Насколько я понимаю, если таймер включить с помощью байт опций (option bytes), то он всё равно будет включен программно, но загрузчиком, встроенным в микроконтроллер на заводе. А это значит, что его надёжность всё же ниже, чем надёжность таймера внешнего.
  8. Лень смотреть доку. Но возможно, что сделано это в целях безопасности. Нельзя отключить сторожевую собаку, которую заставили охранять целостность ПО. Ведь отключить его может потенциальная ошибка программы. Включили, живите с ним) На это намекает и постоянное включение сторожевика через биты опций. Т.е. без участия кода, и таймер включается сразу же со стартом микроконтроллера, вернее, заводстким загрузчиком. Но к старту Вашего кода он уже запущен и работает.
  9. Скачал его. Первое, что прям понравилось - честные отдельные окна схемы и графиков. Когда у тебя два монитора - это неоспаримый плюс. В Micro Cap этого не сделать. Verilog/C++ описание блоков тоже успел отметить. Не нашёл курсоров на графике. Если я не ошибся, и их действительно нет, то это пока "эпик фейл".
  10. В принципе, у меня сейчас схожая задача. Только там не управление, а измерительный прибор. Он измеряет переходное сопротивление контактов высоковольтного выключателя (тех, что на электрических подстанциях) в цикле. Длительность цикла не более 200 мс. Данные с двух каналов АЦП (ток и напряжение) пересчитываются на лету, т.е. в реально времени,, и выдаются в ЦАП в виде сопротивления, приведённого к шкале напряжения. Возможно, Ваш опыт будет мне полезен для индикации возникшей ошибки, если такое имело место быть по какой-либо причине🙏
  11. Теперь всё встало на свои места. Но ПЛК - это довольно узкая и специфичная область. И без пояснений необходимости подхода мало, как я думаю, кто может дать адекватный совет. Лучше сразу подобные нюансы давать в исходном вопросе, либо по мере того, как становится очевидным, что пользователи форума не понимают о чём речь и дают советы невпопад)))))))
  12. Простите за поднятие сторой темы. Но именно сейчас стало интересно, что за симулятор. Есть ли у него какие-либо преимущества перед LT Spice или Micro Cap. Я понимаю, что всё это можно почитать в инете, хотя симулятор и не имеет широкого распространения. Могли бы Вы дать какие-либо комментарии, как я понимаю, Вы работаете с ним?
  13. Спорить нет нужды. Я его действительно не проверяю. Но зная Ваш опыт, ведь я же читаю соообщения на форуме, я всё же подумал, что не можете Вы из праздного любопытства спрашивать о прерываниях, и что что-то там в этих прерываниях действительно есть. Поэтому-то я попросил объяснений, чтобы повысить свой уровень знаний. Ибо знать всё невозможно, но пополнять опыт никто не запрещает. Спасибо!
  14. Вы отключили, затем включили прерывания. Глобально. Значит, что-то не так с переинициализацией контроллера прерываний. Не отвергая Ваш способ, скажу, что избегаю так делать. Мне проще сбросить в своём загрузчике микроконтроллер, а потом запустить ПО, записав некую сигнатуру в ОЗУ.
  15. Конечно! И никак иначе. То, что в скрипте линкера указано расположение программы произвольно, не влияет на адрес сброса микроконтроллера. Мне казалось, это настолько очевидно, что я даже вопроса Вашего не понял, выходит. Запускать "смещённую" программу должен только загрузчик. А сам загрузчик запускается с "начального адреса". Где угодно, в принципе. Ой, играть! Нет, конечно. Читать внимательно описание этого регистра, и не играть, а укладывать в его биты осмысленную! информацию. OFF: Вы меня не знаете💗 Я в реальности очень сложный человек. Не все могут уважать мне подобных))))
  16. Какое у Вас безосновательное и неуважительное суждение к своим коллегам... На самом деле непонятно превосходство проверки результатов вычислений посредсвом прерываний. Предположим, что FPU инициировал прерывание по результату, давшему "Деление на ноль". Как мне поможет эта информация именно в прерывании? В чём преимущество? Ведь ровно то же самое я могу сделать в основном потоке ПО. Я понимаю, что прерывание будет вызывать именно в случае какой-либо ошибки, и процессорное время будет меньше тратиться в этом случае на возникшие проблемы. Но ведь в прерывании Вы всё равно ничего не исправите. Данные уже пришли из какого-то канала поступления информации. Поэтому, всё равно придётся что-то предпринимать в основном потоке. Например, выдать на экран соответствующее сообщение. Возможно, что я Вас неверно понимаю. Именно на этот случай хотелось бы пояснений.
  17. Модератор: @vasilius, здесь технический профессиональный форум. И согласно правилам п.2.1.3, следует высказываться грамотно. Пока Ваш пост поправил сам. Впредь уделяйте этому внимание, пожалуйста.
  18. Дисплеи просто так не гаснут. Даже в китайских приборах. Возможно, что после замены контроллера дисплея он снова погаснет из-за пробитого стабилизатора в цепи питания +3.3 В, например. Там нужна, ИМХО, вдумчивая и тщательная диагностика, дающая ответ о причинах произошедшего. А ремонт - это всего лишь следствие.
  19. Модератор: я её сюда и перенёс как раз из того раздела, где Вы хотите видеть тему. Тут больше вопросов по среде разработки. А как можно? Поделитесь ответом для тех, кто будет решать подобную задачу)
  20. Перенос таблицы векторов и инициализация регистра VTOR выполняются? Вроде у Вас Cortex-M3.
  21. Ну, и к чему всё это? Я Вам написал множество вопросов и уточнений, рассчитывая получить хотя бы на часть из них вменяемые ответы, ведь Вы сами подняли эту тематику. А Вы подхватили одно моё предложение, причём просто вырвали его из контекста, интерпретировали его совершенно неверно и начали просто троллить. Глупо и грустно.
  22. Нет. Вы просто не умеете читать и анализировать, что Вам пишет собеседник, т.е. в данном случае - я. И очень красиво уходите от действительно конструктивного обсуждения. На этом действительно можно закончить, т.к. вести диалог с сомнительного качества профессионалом - терять своё время, да ещё и напитать свой опыт вероятными лжезнаниями.
  23. Чтобы говорить предметно, а не на эмоциях, раздувая в глазах друг друга больших гуру, особенно, подкрепляя это различными красиво звучащими словами и утверждениями, предлагаю разобраться в следующем: 1. Что значит безопасный язык? 2. Если я компилирую исходник Си компилятором Си++, превращаю ли я программу в опасную? 3. А теперь, к исходнику в п. 2 я добавляю простейший шаблон, который, скажем, находит сумму для различных типов данных. Теперь исходник стал потенциально опасным? Прошу учесть, что шаблон даже не добавляет лишнего кода в исполняемый файл. Фактически, он автоматически делает за Вас ручную работу. 4. С какого момента исходник на Си++ становится всё же опасным? 5. Используя "безопасный" язык Вы разве надёжно защищаете себя от алгоритмических багов? Их там тоже можно искать полжизни. Тема авионики и космоса это неоднократно подтверждают. При этом я имею в виду не слишком опасные баги. Но они есть. Напрягать начинают подобные биполярные сентенции, состоящие из двух крайностей: либо программа действительно сложная, и требует аж специального языка программирования, либо программа до безобразия простая, что её можно написать одним местом, не включая мозг. А между двумя этими крайностями: бездна, пустота, больше когда никакого нет. Глупо было бы с моей стороны сейчас сказать, что много лет пишу на Си++ для встраиваемых систем, и долго багами не занимаюсь, ибо их нет. Но это был бы опыт субъективный, который Вы вправе могли бы проигнорировать. Поэтому, я спрошу так: выходит, что все программисты Си++ либо пишут донельзя простейшие программы, либо оставшуюся жизнь ищут баги в сложных программах? Вам самому, простите за прямоту, не смешно?
  24. Это в раздел "Предлагаю работу". Там за деньги Вы будете получать только желаемое. А здесь - общий форум. Вправе высказываться каждый.
  25. Этой информации недостаточно для полного понимания проблемы Если эти данные вводятся в некую форму с клавиатуры, т.е. медленно, то самым разумным будет проверка этих данных на валидность. Т.к. скорость проверки процессором будет ничтожна мала по сравнению со скоростью ввода этих данных. Если же данные вводятся очень быстро, скажем, копированием огромного csv-файла на носитель прибора с последующим его чтением и вычислениями, когда времени на проверку как будто бы и не остаётся... наверное, Ваш вариант, который пытаетесь реализовать, будет уместен. Но тут моя опытность не даёт какого-либо ответа, т.к. не использовал прерывания от FPU.
×
×
  • Создать...