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

adnega

Свой
  • Постов

    3 603
  • Зарегистрирован

  • Посещение

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

    3

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


  1. Это не согласуется с вашим же утверждением Идею можно найти в сказке "Каша из топора" или в соседней ветке про DC/DC без дросселя и диода. По поводу закона Ома: в школе в кружке радиолюбителей ремонтировал ламповый телевизор. Решил померить напряжение после детекторного диода: китайский мультиметр зашкаливало на пределе 2000DC, хотя по осциллограммам из схемы там единицы вольт. Лучше говорить о "закон Ома для постоянного тока".
  2. Вы очень плохо ориентируетесь в обязанностях программиста. Кроме алгоритма в прошивке еще много чего нужно сделать, не говоря уже о некоторых нетривиальных особенностях из ES, жизненного опыта или тонких моментов компилятора, среды и рабочего окружения вообще, пачки утилит, самописных утилит, контроля версий и средств документирования. На фоне всего указанного, закодировать готовый алгоритм действительно не сложно, но обезьяна этого не сделает, т.к. только алгоритм в изделии никому не нужен и работать не будет. Обычно на 99% у меня весь функционал прошивки не имеет никакого отношения к "новым алгоритмам" - все кирпичи уже есть, нужно соединить их в нужной Заказчику последовательности и при необходимости подкрасить в выбранный в ТЗ цвет.
  3. ESP32 - вкусные камушки, но очень бедная документация. Мне для проекта не хватает CAN, SDIO и RMII. В чипе они заявляются, но в документации ноль. Может, у вас есть что-то, кроме выложенного на официальном сайте?
  4. А я еще большее скажу: все началось с того, что меня попросили доработать прошивку под существующее чужое железо. Т.е. железом можно было вообще не заниматься.
  5. Все верно: к примеру, несколько лет назад (в 2012) я разработал плату, к которой можно подключать некоторое множество периферии; сделал для нее прошивку. Но время идет, функционал растет, а его в основном делаешь за счет софта. Редко модернизируется и плата - крайняя версия 3 от 2014. Итого: месяц на хард, 5+ лет на софт, и софт постоянно дополняется хотелками. Кто должен все это делать? Либо один грамотный спец, если силенок и времени на все хватит. Либо один грамотный спец нарезает задания узкоспециализированным спецам-помощникам, с периодическими разжовываниями и вкладываниями в рот, для повышения их квалификации. Я не понимаю как там Н.С. периодически рассказывает про Ома, по-моему дело не только в ученике, но и преподавателе - мои все усваивают с первого раза, а закон Ома вообще не помню, чтоб кому-то приходилось объяснять.
  6. И еще не понятно чем и как залито - может просто механически отрывается/теряется контакт.
  7. stm32f411 spi1+DMA

    Дык, сделайте обработчик прерываний HT и TC для этого DMA. Я делаю примерно так void DMA2_Stream7_IRQHandler(void) { if(DMA2->HISR & (1 << DMA_HISR_HTIF7)) { DMA2->HIFCR = (1 << DMA_HISR_HTIF7); dma_event = 1; } if(DMA2->HISR & (1 << DMA_HISR_TCIF7)) { DMA2->HIFCR = (1 << DMA_HISR_TCIF7); dma_event = 2; } } в idle if(dma_event == 1) { dma_event = 0; // заполняем первую половину кольца } if(dma_event == 2) { dma_event = 0; // заполняем вторую половину кольца }
  8. stm32f411 spi1+DMA

    Вам нужно DMA_Mode_Circular.
  9. stm32f411 spi1+DMA

    Значит поток у вас непрерывный. Тут все просто - делаете кольцевой буфер на DMA и забываете вообще про SPI. Готовите в прерываниях DMA HT и TC новую половину данных. SPI лучше сделать 16 бит, если выдаете с частотой не сильно меньше AHB. Я делал на стареньком STM32F103 вывод на VGA-монитор - очень похожая задачка.
  10. stm32f411 spi1+DMA

    В результате помехи устройство может недосчитаться CLK и давить линию SDA своим ACK. Перед формированием условия START нужно убедиться, что SDA в 1, иначе подергать CLK.
  11. stm32f411 spi1+DMA

    О, я рекомендую почитать. Очень хорошие статьи у Курница. На странице 40 раздел "Вложенность прерываний" и далее. Еще обсуждали тут. Есть на английском тут.
  12. stm32f411 spi1+DMA

    Вы используете функции ОС в прерывании, у которого приоритет выше системного.
  13. stm32f411 spi1+DMA

    А как же это в конце обработчика? xSemaphoreGiveFromISR ( xSemaphore_spi1, &xHigherPriorityTaskWoken ); xTaskResumeFromISR (&xHandleSPI1); uart2_putcharPoll ( 'E' );//, xNoBlock ); portEND_SWITCHING_ISR ( xHigherPriorityTaskWoken ); Попробуйте приоритет сделать ниже системного. Насчет while ( USART_GetFlagStatus( USART2, USART_FLAG_TC ) == RESET ); - это не лучшее решение ждать отправки в самом высокоуровневом прерывании. Лучше сделать для uart очередь и в idle ее опустошать. Если вам для отладки, то лучше светодиод на выводе МК.
  14. При таком подходе устройство может поработать, а потом сломается в самый неподходящий момент. Лучше сразу делать хорошо. Кста, принципиальная схема и система сквозного проектирования ПП, тот же KiCAD, позволяют значительно экономить время в целом.
  15. Я же вас просил обходиться без крайностей, а вы продолжаете. Жаренные семечки можно есть - давайте питаться только жаренными семечками! Блин, от этого будут проблемы - поэтому жаренные семечки это вред, давайте запретим есть жаренные семечки! Проблема не в семечках, а в их доле в рационе. Шаблон понятен. Т.е. вы отказываетесь предоставить программу для МК, которую я просил выше? Т.е. вы признаете, что заблуждались по поводу надежности МК, и возможности обработки нештатных ситуаций средствами МК?
  16. Сбои возможны. Речь о том, что сейчас их можно обнаружить и обработать, если ты, годный инженер.
  17. А надо как? А зачем, если большинство будет работать не по специальности?
  18. Конечно врете и передргиваете )) Вы всячески пытаетесь продемонстрировать низкий уровень подготовки на своем примере, но это не доказывает, что у всей инженерной России так. Я считаю, что как и в других вопросах тут нельзя ставить диагнозы категорично - все не так плохо, но и не так хорошо. Только тролль будет писать категоричные заявления, как бы набрасывая, а не, пытаясь привести объективные данные, даст людям сделать выводы самим.
  19. Дык, вы напишите, а мы по исходнику поймем ваш уровень. Можете на 1 сбивать, можете дефайн определить, можете на случайную величину портить. Переходите, пожалуйста, от слов к делу. И про обработчик HF не забудьте.
  20. Видимо, ТС все уже собрал на двух реле, поэтому тема исчерпала себя ;) Для меня лично самым простым решением был бы мелкий МК (та же тини13). Много лет назад делал другу управлялку для фар: подключалась в разрыв питающего провода, и был один управляющий вход, от которого лампа работала либо в полный накал, либо в 30% накала. Вас порадует, что сделал я это на 555 таймере ;)
  21. Лучше найти другие пины, коих в R-корпусе много, а эти использовать на ввод, но точно не для светодиодов.
  22. Вы не сможете в течение недели предоставить тест, в котором CPU будет сбиваться на один байт, и не попадет при этом в HF. Если сможете, то время пошло.
  23. stm32f411 spi1+DMA

    Похоже на FreeRTOS. Там с приоритетами прерываний нужно быть очень аккуратным. Не все функции можно использовать в обработчике. Мне кажется, что причиной может быть строчка uart2_putcharPoll ( 'I' );//, xNoBlock ); Для DMA у вас задан самый высокий приоритет // Configure the DMA interrupt priority NVIC_InitStructure.NVIC_IRQChannel = DMAx_Streamx_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init ( &NVIC_InitStructure ); - вы не имеете право пользоваться функциями ОС внутри такого обработчика.
  24. Пять копеек не по делу: если на PC13 светодиод, то это не очень хорошо, т.к. PC13-PC15 очень слаботочные выходы, и ST запрещает к ним подвешивать мощные нагрузки.
  25. Я не видел ни одной централизированной системы, чтоб не смотрелось монструозно (хотя не скажу, что много видел). Лучше уж распределенную систему, но там каждый узел должен быть умным. Я заложился на шину CAN+питание+резерв. Соединил все узлы паровозиком по всех квартире. Каждый узел - выключатель на 2 группы (с полной группой), три сенсорных слайдера (или 6 сенсорных кнопок), 4 светодиода, пищалка, 2 аналоговых входа, один токовый выход для LED-подсветки. К аналоговым входам обычно подключаю геркон двери и датчик движения. В каждый узел можно залить свою мини-программу. Контроллеры могут обмениваться сообщениями друг с другом. Есть контроллеры с 6 входами и 6 выходами. На них сделал подсветку в кухне - плавное включение-выключение светодиодной ленты при открытии дверей. В коридоре более крутой контроллер. На нем сделан звонок, контроль входных дверей, контроль движения, контроль наличия фазы, GSM-сигнализация, титровалка для видеодомофона, светодиодная периметровая подсветка потолка и т.п.
×
×
  • Создать...