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

firstvald

Свой
  • Постов

    1 004
  • Зарегистрирован

  • Посещение

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

    2

Сообщения, опубликованные firstvald


  1. там нужно организовать процесс в нескольких местах. речь идет о комплексе. его нужно разработать заново. софт с хранением файлов и чтением из файлов и общения с железкой. протокола общения практически нет. нужно разбираться. т с встает в штыки и считает что obj файл когда- то написанной на паскале программы полностью закрывает проблему. ну и по всем вопросам у него компетентное мнение.

  2. это безобразие. и безответственность разработчиков. схемы ведут себя ооочень по-разному в зависимости от подключения земель и корпусов. я могу предположить, что частично вина на этом зоопарке в том, что приборы с которых это сдиралось, в свою очередь, тоже были по-разному устроены.  ну и эпический случай: у Чертока в Ракеты и люди описывается, что попытка использовать корпус ракеты как минус питания приводила к паразитному срабатыванию пиропатронов и они перепрокладывали питание по-честному, с отдельным проводом для минуса. а это дубовая - предубовая штука,  не то, что усилитель или приемное устройство. я боюсь, что (мы с таким подходом в газпроме встречались)нужно делать так, как сложилось у заказчика. одно дело госты и стандарты,  другое , когда нам говорят: у нас сложилось так и так. если будете так делать, вопросов не будет. 

    можно конечно помечтать и сказать, что анализируем приборы , какие сходу схемы нашли, и свести схемотехнику ко всем возможным там случаям. но, это в порядке того, когда делать нечего и времени дофига.

  3. я вос принимаю так. корпус - локальное имя цепи минуса питания до минуса питания устройства (если устройство не имеет встроенных трансформаторных источников питания) или до минуса питания первого встроенного в устройство трансформаторного источника питания. дальше в устройстве могут быть множественные не связанные друг с другом минусы. они могут называться очень по разному. отдельно может быть цепь "корпус устройства" она может соединяться или не соединяться с минусом питания. или соединяться помехоподавляющими и защитными устройствами :  конденсаторами,  разрядниками,  варисторами, супрессорами,  резисторами. теоретически можно отслеживать обрыв минуса внешнего питания и обрыв соединения корпуса устройства с металлическими конструкциями всей системы или с защитной землей системы.

  4. мне кажется, что вариант с одной ячейкой и степ апом был бы более простым. ап, причем, можно было бы просто переключаемыми конденсаторами (там можно на двух диодах двух конденсаторах и двух вентилях (генератор на одном триггере шмидта не очень на практике работает)). или, все же, дроссель, по которому редко, но периодично , на очень короткое время, работает транзистор в землю. причем, просто на вентилях мультивибратор. а потом, лоу дроп линейный. как не очень хороший, но работающий вариант мог бы подойти.

  5. и транзисторы и диоды и конденсаторы при последовательном включении шунтируют резисторами. номинал выбирается исходя из токов утечки как выше указали. выбирают чтобы на пол порядка или порядок больше бы был ток через резистор.

  6. On 1/12/2024 at 4:07 PM, Ruslan1 said:

    Кстати да, это сложный переход. Я тоже через это прошел, когда после турбо-си и суперлупов начал писать в С++Билдере. Это был шок: вообще никакого "суперлупа", у каждого окошка/кнопочки/компонента свои события и функции их обработки. Очень тяжело было, первые пару дней, но зато потом как понял! 🙂

     

    те же самые ощущения были при начале работы с билдером. делал привычный для себя маин по программному таймеру 😁

  7. 6 hours ago, makc said:

    У меня есть опыт разработки аналогичного устройства, которое обеспечивает коммутацию нескольких интерфейсов USB и управление их питанием (выборочное включение/выключение). Принцип тот же.

    В вашем случае можно сделать ещё проще, чем на МК: поставить преобразователь USB-UART (FT232, CP2103, etc) с выходами типа GPIO и управлять ими аналоговым мультиплексором/мультиплексорами.

    2103 будет супер компактная штука. и там скорее сигналами квитирования управлять. а коммутаторы в sot23 или в qfn - будет миниатюрнее некуда.

  8. #include <AT91SAM9260.h>
    
    void timer_init() {
        // Расчет значения для регистра TC_RC (сравнения)
        uint32_t ms = 1; // 1 миллисекунда
        uint32_t rc_value = (4000000 / 2) / 1000 * ms; // Половина частоты кварца, чтобы получить частоту таймера
    
        // Установка режима работы таймера
        AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; // Отключение тактирования
        AT91C_BASE_TC0->TC_CMR = AT91C_TC_WAVE | AT91C_TC_CPCTRG; // Режим WAVE и сравнение
        AT91C_BASE_TC0->TC_RC = rc_value; // Установка значения сравнения
        AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; // Включение тактирования и запуск таймера
    }
    
    // Обработчик прерывания от таймера
    void TC0_Handler() {
        if ((AT91C_BASE_TC0->TC_SR & AT91C_TC_CPCS) != 0) {
            // Обработка прерывания
            // Ваш код обработки прерывания здесь
        }
    }

    посмотрите. может что то используете.

  9. когда у нас сочетание последовательностной схемы и комбинационной и нужно чтобы по результатам работы последовательностной схемы комбинационная  принимала решение  используют многофазную синхронизацию. В простейшем случае двухфазную. по импульсу первой фазы последовательностная схема что- то насчитает. а вот временной интервал между фазами выбирается так,  чтобы заведомо в самом худшем случает все переходные процессы закончились к моменту импульса второй фазы. тогда по импульсу второй фазы разрешаем комбинационной схеме принимать решение. она может принимать решение сразу и отрабатывать все переходные процессы ,  только управлять чем- то ей будет позволено только импульсом второй фазы. 

    посмотрите вот эту книгу. там вопросам триггеров и их построению уделено много материала.

    Функциональные узлы цифровой автоматики

  10. можно предложить такую штуку. поставить цель собрать простое устройство. это может быть в зависимости от склонностей : гитарный усилитель,  робот тележка, термометр, игрушка для кота. каждая из таких штук состоит из суммы знаний. и тогда не распыляясь можно впрыгнуть в радилюбительство. 

    на самом деле я бы порекомендовал бы еще почитать просто все из этого (хотя они и фантастически архаичны по нынешним временам - но будет существенно прощще заниматься после прочтения):

    Сворень Электроника шаг за шагом.

    Борисов Юный радиолюбитель

    Айсберг Радио это очень просто. Транзистор это очень просто.

    Любую книжку по ардуино (лучше скачать - дороги они).

  11. 8 minutes ago, _pv said:

    кто-нибудь объясните откуда ещё три лишних байта у этой структуры в конце появилось? 

    два раза по три байта перед флоатами понятно, но в конце-то зачем? offsetof(LOG_Type, Year) == 24

    или не только положение самой структуры должно быть кратно самому большому её члену (align), но и размер тоже?

     

    как это помогает с паддингом и выравниванием этих union внутри структуры?

     

    никак. что и как лежит в структуре становится неважно. из юниона байты кладем туда куда хотели положить

  12. 3 hours ago, jcxz said:

    Ну да - в таком буреломе на пустом месте, больше размышлять придётся ища баги. Не до попаданий будет. И ещё не забывая всё это безобразие перепахивать по новой при малейшем изменении структуры.
    Зачем ваять лисапед с треугольными колёсами, вместо того чтобы воспользоваться штатными возможностями компилятора??
    Вы и 32-разрядные числа тоже поразрядно складываете? Снимая элемент случайности.  :crazy:

    штатные возможности компилятора могут сработать в очень конкретном случае. когда мы разбираем структуру на байтики в пределах одного проекта. нам ведь потом эти байтики обратно складывать в структуру. в этом случае это работает. в принципе, нас даже не интересует: что и как там складывается,  более того, спокойно пройдет упаковка с дырками (если закрыть глаза на размер). а вот если разобранную структуру передаем вовне и из байтиков нужно будет ее опять сложить в структуру ,  скажем, в компе или в другом контроллере,  вот тут вот компилятору делать нечего - здесь нужно жестко задавать что где будет. ну и счастливчики работавшие с микрочипом знают что float в микрочипе это вовсе не 4 байта,  а три. а double вовсе не 8 байт а 4. и упаковка и распаковка таких разночтений простым костылем типа объединения не получится.

    upd  заглянул остался ли этот ужас у микрочипа. ужас изменился: float - 4 байта,  а double и long double тоже 4 байта. 

×
×
  • Создать...