Jump to content
    

cybersonner

Свой
  • Posts

    167
  • Joined

  • Last visited

Everything posted by cybersonner


  1. В общем пока результаты не прочитаю- флаг не сбросится. Итого: void ADC_InterruptHandler(void) { static uint16_t temp[16]; uint8_t i; for(i=0; i<16; i++) temp[16]=ADC_ResultGet(i); TEST_Set(); IFS1CLR = _IFS1_AD1IF_MASK; TEST_Clear(); if (ADC_CallbackObj.callback_fn != NULL) { ADC_CallbackObj.callback_fn(ADC_CallbackObj.context); } }
  2. Спасибо, очень похоже на то, что флаг не сбрасывается. Весь обработчик прерывания (уж проще сложно придумать): TEST_Set(); IFS1CLR = _IFS1_AD1IF_MASK; TEST_Clear(); Завтра в железе проверю отладчиком, сбрасывается ли флаг.
  3. Таймеры заняты в проекте. Проблема не в том, что частоты неточная, а в том, что она даже близко не та, которая задумана. Даже в теории 734 кГц получиться никак не должно.
  4. Контроллер PIC32MX795F512L, дописываю проект. Пытаюсь запустить АЦП на прерываниях, 16 каналов (auto sampling), прерывания на каждый 16 результат (когда готовы результаты всех каналов). Частота CPU 80 МГЦ, PCLK делитель на 8 (10 МГц). Хочу получать частоту дискретизации 500 Гц для каждого канала (8 кГц для всего ацп). В обработчике прерывания ацп сбрасываю флаг прерывания, дергаю ногой вверх и вниз, которую смотрю осциллографом. По итогу получаю частоту прерываний 734 кГц, что выглядит странно. Пытался менять ADCS и SAMC регистры- частоты эта не меняется. Текущие настройки (в отладчике проверял- так и есть): AD1CON1 = 0xe4; AD1CON2 = 0x243c; AD1CON3 = 0xc18; Пробовал накидать проект (вся программа: в обработчике прерывания ацп ногой дергаю) на Harmony3 (тут версия xc32 другая, пробовал даже на другом экземпляре контроллера)- та же проблема. В какую сторону смотреть?
  5. Травил перекисью и лимонной кислотой. Отлично получалось. Перекись из аптеки, лимонная кислота из магазина- большая пачка. Травит несколько часов при комнатной температуре. Мне понравилось больше, чем хлорным железом- труднее испачкаться.
  6. Приблизить к вращающимся лопастям что-нибудь, например установить металлический уголок.
  7. Поймал на фото тот самый момент: на одном фото все хорошо, на втором- после этого фото светодиод был установлен со смещением. Я считаю, что софт фокусируется не на том сопле, не на той детали. Хотя вариант с маркером возможно рабочий- если на нужном сопле какое-то расплывчатое пятно (деталь+ пятна светлые на сопле), то соседняя деталь выглядит лучше (четче), на ней софт и фокусируется. Проверить не могу- уже поменял работу. Скорее всего все как у топикстартера. Детали в таком случае ставятся ровненько, но с одинаковым смещением в сторону. В настройках сопел все хорошо- в начале выполнения программы сопла находятся очень точно.
  8. Он смотрит на сопла нижней камерой и фокусируется не на том сопле. В момент этот даже фото сопла чуть меньше. Детали ставит левее или правее. Не помню точно. Общался с дилером: "поиграйтесь с подсветкой, там рядом с подсветкой нижней камеры переключатели, пощелкайте ими". То ещё шаманство, у меня в итоге не получилось. Можно ещё попробовать, чтобы раскладчик центровал сразу все компоненты, делая снимок всех сопел с деталями(как включается это не скажу, сейчас под рукой раскладчика нет). В теории должно помочь. Меня это сильно достало и я просто использовал два сопла по диагонали.
  9. Куча плат отладочных, на которых только PHY со штырями. Гуглить "Модуль Ethernet phy".
  10. Взять другую библиотеку? не libMPSSE.a, а libMPSSE.lib (и то и другое есть в файликах LibMPSSE). (это чисто в теории)
  11. А зачем семафор? По результату все это сложное работает как если бы задача poll_button просто проверяла состояние входов кнопок.
  12. вроде "?" -один символ, а "*"- любое количество символов
  13. я предположил, что возможно у используемых ног (например на шине данных) неправильно выставлены биты, определяющие скорость работы.
  14. Питание- источник напряжения. Напряжение постоянное и не меняется. А ток может меняться. При переключении в том числе.
  15. Может конструктивно (в приборе) экран неудачно стоит? И например через него заземляется электроника. Остальные сигналы? Хотя бы просто уровни/фронты. Ну то есть чем по сигнала отличается рабочий контроллер от нерабочего? Ну и самое просто: может не контроллер, а разъем дисплея ломается?
  16. Закон Ома. На ножке +5(падением на диоде пренебрежем), сверху +12. Итого 7 вольт на 12 кОм получается 0.58 мА, что потекут через защитный диод. Ему ничего не будет.
  17. это функция, которая по итогу будет вызвана, если в коде, сгенерированном Stm32CubeMx (а судя по комментариям- топикстартер в нем генерирует) написать printf. Она изначально weak, поэтому написав ее, можно перенаправить вывод printf куда нам надо (в моем случае в uart1).
  18. printf делается примерно так int _write(int file, char* ptr, int len) { HAL_UART_Transmit(&huart1,ptr, len, 1000); return len; } тут все, что выводится printf- посылается в данном случае через uart1. можно также выводить в окно ide- гуглить "semihosting stm32" (я пока с этим не разрбрался)
  19. STM32CubeIDE Simulator

    Или выбрать контроллер попроще, для которого есть симулятор. Или собрать стенды для удаленной отладки (где-то я подобное видел)
  20. Вопрос снимается. Я два дня отлаживал плату, на которой деталей не хватает(была спаяна полгода назад). Проблема казалась программной- оказалась аппаратной.
  21. Stm32f207+LAN8742A. FreeRTOS+LWIP. Http сервер (в данный момент уже просто отправляет "HTTP/1.0. 200 OK\r\nContent-type: text/html\r\n\r\nOK" на все запросы). Работает нестабильно- в wireshark видны TCP retransmission. Один раз подобное было- оказалась проблема с питанием (на том же питании висела зная нагрузка, которая дергала и просаживала питание LAN8742A)- добавил конденсатор- все исправилось. В этот раз проверил осциллографом- питание стоит. Включаю отладку в lwip #define LWIP_DEBUG 1 #define IP_DEBUG LWIP_DBG_ON Так и есть- пакет просто не приходит ( id пакета пропущен в логах). Куда еще смотреть? Прибор и сетевуха соединены напрямую. Это не кабель и не сетевуха- по тому же кабелю с роутера все работает. Проверяю скриптом на pythone, посылающем get запросы, смотрю время ответа и логи в wireshark.
  22. STM32CubeIDE Simulator

    Внутрисхемная отладка подключенного контроллера есть: построчно, покомандно. Нажать на кнопку Debug - и все начнется. Симулятора контроллера (когда можно симулировать только на компе, не подключая железку) нет.
  23. Чисто в теории максимум, что может произойти при питании от одного источника питания- терминал сбросится в момент срабатывания замка (если мощности блока питания не хватит). Импульсный, трансформаторный в данном случае не важно. Трансформаторные шумят меньше, но это в измерительных схемах актуально.
×
×
  • Create New...