Мне думается, что тут не "и", а "или" (хотя бы один из /32K или /RD не установлен)Код:if(workAddrDiapason!=0) // Если сигналы /32К и /RD физически не установлены в 0
Мне думается, что тут не "и", а "или" (хотя бы один из /32K или /RD не установлен)Код:if(workAddrDiapason!=0) // Если сигналы /32К и /RD физически не установлены в 0
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да, именно так. В if-ветке обрабатывается ситуация когда не оба в нуле, там режим ножки выставляется как input чтобы не влиять этой ножкой на подключаемую схему. В else-ветке включается режим выхода и выставляется нужное значение на ножке (в эксперименте-1 выставляю 0, в эксперименте-2 выставляю 1).
Для варианта выставления нуля (эксперимент-1), этот ноль выставляется на слишком короткое время. Ноль должен удерживаться как минимум до момента восходящего фронта на желтой линии. После этого еще нужно время чтобы STM-ка поняла, что не оба сигнала в нуле, и только после этого перестать удерживать ноль. А по графику мы видим, что ноль перестает удерживаться гораздо раньше. И почему так происходит, я не могу понять.
Любопытный хомячок webhamster.ru - маленький и пушистый IT-проект
Еще из мыслей навскидку - не доверяю локальным переменным с областью видимости в пределах ветки цикла. Попробуйте вынести объявление переменной повыше, или вообще сделайте ее статической/volatile.
uint32_t workAddrDiapason
Любопытный хомячок webhamster.ru - маленький и пушистый IT-проект
Последний раз редактировалось Serg6845; 30.05.2022 в 21:55.
Зверинецъ
Специалист (был когда-то "совсем стандарт") - 1988-2023
Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
Ленинград2 + CF карта
Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
БК0010-01 стоковый[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)