Как отключать платы не на взвешенном состоянии

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#41

Сообщение Alex1968 » 01.09.2020{, 17:20}

Я правильно понял, что побороть проблему недовыполнения кода на плате которая управляется по условию из другой платы не получится?

RootShell
Рядовой
Сообщения: 77
Зарегистрирован: 27.06.2020{, 04:22}
Репутация: 18
Откуда: World
Имя: Agat
Контактная информация:

Как отключать платы не на взвешенном состоянии

#42

Сообщение RootShell » 01.09.2020{, 17:25}

На вскидку очень большой loop(), много проверок if/else. Может как то их вынести в функции? От какой библиотеки заголовок CyberLib.h

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#43

Сообщение Alex1968 » 01.09.2020{, 17:30}

RootShell писал(а):
01.09.2020{, 17:25}
На вскидку очень большой loop(), много проверок if/else. Может как то их вынести в функции? От какой библиотеки заголовок CyberLib.h
я не писатель кодов, собрал из блоков данной программы, на сайте которой вы сейчас находитесь.
Последний раз редактировалось Alex1968 01.09.2020{, 17:42}, всего редактировалось 2 раза.

RootShell
Рядовой
Сообщения: 77
Зарегистрирован: 27.06.2020{, 04:22}
Репутация: 18
Откуда: World
Имя: Agat
Контактная информация:

Как отключать платы не на взвешенном состоянии

#44

Сообщение RootShell » 01.09.2020{, 17:41}

я вас понял. Можно проверять ногу на предмет высокого уровня. И если она в 1 то дальше проваливаться в функцию которая будет выполняться до конца и начинаться с начала до тех пор пока нога в 1. Если нога в 0 то и в функцию не попадем в итоге крутиться пустой Loop() Плата ничего не делает.

Отправлено спустя 58 секунд:
как это блоками сделать я не знаю к сожалению.

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#45

Сообщение Alex1968 » 01.09.2020{, 17:43}

RootShell писал(а):
01.09.2020{, 17:42}
я вас понял. Можно проверять ногу на предмет высокого уровня. И если она в 1 то дальше проваливаться в функцию которая будет выполняться до конца и начинаться с начала до тех пор пока нога в 1. Если нога в 0 то и в функцию не попадем в итоге крутиться пустой Loop() Плата ничего не делает.

Отправлено спустя 58 секунд:
как это блоками сделать я не знаю к сожалению.
Это оооочень сложный проект ??? Я уже всё что можно и не можно вынес на другие платы ардуино, и управляю по UART оттуда, здесь банально надо включать и выключать две платы, но так чтоб они не застревали в промежуточном состоянии. Ну увы...если переменная с управляющей платы пришла на отключение, ты хоть лопни хоть тресни она выключится на середине кода.

777.jpg

RootShell
Рядовой
Сообщения: 77
Зарегистрирован: 27.06.2020{, 04:22}
Репутация: 18
Откуда: World
Имя: Agat
Контактная информация:

Как отключать платы не на взвешенном состоянии

#46

Сообщение RootShell » 01.09.2020{, 17:55}

Можно начать с простого, а затем постепенно увеличивать сложность.
Если ли принципиальная разница в управлении платами? Они должны управляться по UART или достаточно считывать состояние пина?

Код: Выделить всё

#include <arduino.h>

void setup(){
    pinMode(7, INPUT);
    Serial.begin(9600);
}

void loop(){
    if(digitalRead(7)){
        serialWrite();
    }
}

void serialWrite(){
    Serial.println(F("one"));
    Serial.println(F("two"));
    Serial.println(F("end......"));
}

Код будет выполняться пока на ноге 7 будет логическая единица. И всегда будет завершать строкой в мониторе порта "end......"

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#47

Сообщение SSSergeich » 01.09.2020{, 17:57}

Alex1968 писал(а):
01.09.2020{, 15:43}
Сделал по вашей схеме
Вы похоже не проинвертировали выходы

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#48

Сообщение Alex1968 » 01.09.2020{, 17:57}

av писал(а):
01.09.2020{, 17:49}
Alex1968 писал(а):
01.09.2020{, 17:20}
Я правильно понял, что побороть проблему недовыполнения кода на плате которая управляется по условию из другой платы не получится?
есть возможность добавить 4 плату зразу после счетчика ? В этой плате обрабатывать переменные включение/отключение плат 2 и 3.
Добавить то можно, но она же будет включена с платой самого счётчика, а значит будет отъедать ресурсы ардуины, а значит скорость упадёт, частота генератора понизится в разы....Именно для того чтоб работала только лишь плата со счётчиком я и затеял эту котовасию с отключением плат.

Плата со счётчиком стабильно выдаёт 15 кгц, все настройки получает по UART с другой ардуины, стоит поставить рядом хоть один блок, даже самый простой хоть OR хоть AND, так сразу частота падает до 200 -300 гц

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#49

Сообщение SSSergeich » 01.09.2020{, 17:58}

al3.PNG
al3.PNG (10.41 КБ) 359 просмотров

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#50

Сообщение Alex1968 » 01.09.2020{, 18:00}

SSSergeich писал(а):
01.09.2020{, 17:57}
Alex1968 писал(а):
01.09.2020{, 15:43}
Сделал по вашей схеме
Вы похоже не проинвертировали выходы
Какие выходы, это же ваша схема...Как вы предложили так и собрал.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#51

Сообщение SSSergeich » 01.09.2020{, 18:07}

Alex1968, посмотрите повнимательнее

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#52

Сообщение Alex1968 » 01.09.2020{, 18:12}

SSSergeich писал(а):
01.09.2020{, 18:07}
Alex1968, посмотрите повнимательнее
но это ведь полнейший бред...Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#53

Сообщение SSSergeich » 01.09.2020{, 18:26}

Alex1968 писал(а):
01.09.2020{, 18:12}
Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.
Какая переменная и для какой платы?

Отправлено спустя 56 секунд:
Вы попробовали или предположили?

Отправлено спустя 1 минуту 23 секунды:
Alex1968 писал(а):
01.09.2020{, 18:12}
Переменная для включения платы имеет значение 1,
да
Alex1968 писал(а):
01.09.2020{, 18:12}
оно инвертируется в 0 и поступает на входы EN дисплея и генератора
нет

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#54

Сообщение Alex1968 » 01.09.2020{, 18:31}

я понял что на ардуине что то более менее быстрое сделать не получится 328 микроконтроллер не тянет даже 20 кгц. Нет, конечно оставить один блок генератора в проекте можно и 50 кгц получить, но для чего мне один голый генератор без счётчиков, схем сравнения, сдвиговых регистров и прочей обвязки? Стоит поставить помимо генератора ещё пару блоков, так сразу частота снижается. Поэтому все эти пляски с бубном с ещё тремя ардуинами управляющими этим несчастным генератором, только ради того чтоб не терять скорость. Значит надо переходить на ESP8266 или ещё что то подобное, с более высокой тактовой частотой. Жаль, но пока его купить тут негде,с али заказывать пока не могу, почта не работает,особый карантинный режим продлён до 30 сентября

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#55

Сообщение Alex1968 » 01.09.2020{, 18:36}

SSSergeich писал(а):
01.09.2020{, 18:28}
Alex1968 писал(а):
01.09.2020{, 18:12}
Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.
Какая переменная и для какой платы?

Отправлено спустя 56 секунд:
Вы попробовали или предположили?

Отправлено спустя 1 минуту 23 секунды:
Alex1968 писал(а):
01.09.2020{, 18:12}
Переменная для включения платы имеет значение 1,
да
Alex1968 писал(а):
01.09.2020{, 18:12}
оно инвертируется в 0 и поступает на входы EN дисплея и генератора
нет
Переменная БОЛЬШЕ, или переменная МЕНЬШЕ, они принимают значение TRUE, именно при условии когда переменная БОЛЬШЕ или МЕНЬШЕ равны TRUE и включается плата №2 или №3.....

al3.jpg
al3.jpg (30.74 КБ) 470 просмотров

А вы эту переменную инвертируете в FALCE и подаёте на вход EN генератора и дисплея, запрещая их работу.

Попробовал только что естественно на макетке. Дисплей пустой, светодиод не горит.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#56

Сообщение SSSergeich » 01.09.2020{, 19:00}

Alex1968, нет
al5.PNG
al4.PNG
al4.PNG (16.16 КБ) 466 просмотров
Отправлено спустя 5 минут 2 секунды:
Alex1968 писал(а):
01.09.2020{, 18:31}
Значит надо переходить на ESP8266 или ещё что то подобное, с более высокой тактовой частотой.
или esp32 или стм...

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#57

Сообщение Alex1968 » 01.09.2020{, 19:07}

SSSergeich писал(а):
01.09.2020{, 19:00}
Alex1968, нет
al5.PNG
al4.PNG
Вы опять не поняли ? Константа BOLSHE и MENSHE равны значению TRUE, там же на скрине в услвиях отчётливо видно....Вы вешаете на них инверсию, тоесть меняете значение на противоположное на FALCE....При значении FALCE на входе EN генератора и дисплея они работать не будут.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Как отключать платы не на взвешенном состоянии

#58

Сообщение SSSergeich » 01.09.2020{, 19:12}

Вы видите перекресток?
При значении BOLSHE = TRUE я инвертирую переменную MENSHE, которая равна 0 и после этого разрешаю работу!
И наоборот

Alex1968
Сержант
Сообщения: 173
Зарегистрирован: 11.12.2019{, 14:51}
Репутация: 0
Имя: Alex

Как отключать платы не на взвешенном состоянии

#59

Сообщение Alex1968 » 01.09.2020{, 19:34}

SSSergeich писал(а):
01.09.2020{, 19:12}
переменную MENSHE
переменная MENSHE и переменнаая BOLSHE могут быть одновременно равны TRUE....И инвертировашись в 0 вешают в нерабочее положение всё что там есть.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Как отключать платы не на взвешенном состоянии

#60

Сообщение Ingwar » 01.09.2020{, 19:56}

SSSergeich писал(а):
01.09.2020{, 19:12}
Вы видите перекресток?
Вам будет трудно, т.к. ...
Alex1968 писал(а):
01.09.2020{, 19:34}
переменная MENSHE и переменнаая BOLSHE могут быть одновременно равны TRUE
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Ответить

Вернуться в «Помогите, а то я "нимагу"»