Как отключать платы не на взвешенном состоянии
Как отключать платы не на взвешенном состоянии
Я правильно понял, что побороть проблему недовыполнения кода на плате которая управляется по условию из другой платы не получится?
-
- Рядовой
- Сообщения: 77
- Зарегистрирован: 27 июн 2020, 04:22
- Откуда: World
- Имя: Agat
- Контактная информация:
Как отключать платы не на взвешенном состоянии
На вскидку очень большой loop(), много проверок if/else. Может как то их вынести в функции? От какой библиотеки заголовок CyberLib.h
Как отключать платы не на взвешенном состоянии
я не писатель кодов, собрал из блоков данной программы, на сайте которой вы сейчас находитесь.RootShell писал(а): 01 сен 2020, 17:25 На вскидку очень большой loop(), много проверок if/else. Может как то их вынести в функции? От какой библиотеки заголовок CyberLib.h
Последний раз редактировалось Alex1968 01 сен 2020, 17:42, всего редактировалось 2 раза.
-
- Рядовой
- Сообщения: 77
- Зарегистрирован: 27 июн 2020, 04:22
- Откуда: World
- Имя: Agat
- Контактная информация:
Как отключать платы не на взвешенном состоянии
я вас понял. Можно проверять ногу на предмет высокого уровня. И если она в 1 то дальше проваливаться в функцию которая будет выполняться до конца и начинаться с начала до тех пор пока нога в 1. Если нога в 0 то и в функцию не попадем в итоге крутиться пустой Loop() Плата ничего не делает.
Отправлено спустя 58 секунд:
как это блоками сделать я не знаю к сожалению.
Отправлено спустя 58 секунд:
как это блоками сделать я не знаю к сожалению.
Как отключать платы не на взвешенном состоянии
Это оооочень сложный проект ??? Я уже всё что можно и не можно вынес на другие платы ардуино, и управляю по UART оттуда, здесь банально надо включать и выключать две платы, но так чтоб они не застревали в промежуточном состоянии. Ну увы...если переменная с управляющей платы пришла на отключение, ты хоть лопни хоть тресни она выключится на середине кода.RootShell писал(а): 01 сен 2020, 17:42 я вас понял. Можно проверять ногу на предмет высокого уровня. И если она в 1 то дальше проваливаться в функцию которая будет выполняться до конца и начинаться с начала до тех пор пока нога в 1. Если нога в 0 то и в функцию не попадем в итоге крутиться пустой Loop() Плата ничего не делает.
Отправлено спустя 58 секунд:
как это блоками сделать я не знаю к сожалению.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Рядовой
- Сообщения: 77
- Зарегистрирован: 27 июн 2020, 04:22
- Откуда: World
- Имя: Agat
- Контактная информация:
Как отключать платы не на взвешенном состоянии
Можно начать с простого, а затем постепенно увеличивать сложность.
Если ли принципиальная разница в управлении платами? Они должны управляться по UART или достаточно считывать состояние пина?
Код будет выполняться пока на ноге 7 будет логическая единица. И всегда будет завершать строкой в мониторе порта "end......"
Если ли принципиальная разница в управлении платами? Они должны управляться по 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......"));
}
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
Добавить то можно, но она же будет включена с платой самого счётчика, а значит будет отъедать ресурсы ардуины, а значит скорость упадёт, частота генератора понизится в разы....Именно для того чтоб работала только лишь плата со счётчиком я и затеял эту котовасию с отключением плат.av писал(а): 01 сен 2020, 17:49есть возможность добавить 4 плату зразу после счетчика ? В этой плате обрабатывать переменные включение/отключение плат 2 и 3.Alex1968 писал(а): 01 сен 2020, 17:20 Я правильно понял, что побороть проблему недовыполнения кода на плате которая управляется по условию из другой платы не получится?
Плата со счётчиком стабильно выдаёт 15 кгц, все настройки получает по UART с другой ардуины, стоит поставить рядом хоть один блок, даже самый простой хоть OR хоть AND, так сразу частота падает до 200 -300 гц
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Как отключать платы не на взвешенном состоянии
Какие выходы, это же ваша схема...Как вы предложили так и собрал.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
но это ведь полнейший бред...Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
Какая переменная и для какой платы?Alex1968 писал(а): 01 сен 2020, 18:12 Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.
Отправлено спустя 56 секунд:
Вы попробовали или предположили?
Отправлено спустя 1 минуту 23 секунды:
да
нетAlex1968 писал(а): 01 сен 2020, 18:12 оно инвертируется в 0 и поступает на входы EN дисплея и генератора
Как отключать платы не на взвешенном состоянии
я понял что на ардуине что то более менее быстрое сделать не получится 328 микроконтроллер не тянет даже 20 кгц. Нет, конечно оставить один блок генератора в проекте можно и 50 кгц получить, но для чего мне один голый генератор без счётчиков, схем сравнения, сдвиговых регистров и прочей обвязки? Стоит поставить помимо генератора ещё пару блоков, так сразу частота снижается. Поэтому все эти пляски с бубном с ещё тремя ардуинами управляющими этим несчастным генератором, только ради того чтоб не терять скорость. Значит надо переходить на ESP8266 или ещё что то подобное, с более высокой тактовой частотой. Жаль, но пока его купить тут негде,с али заказывать пока не могу, почта не работает,особый карантинный режим продлён до 30 сентября
Как отключать платы не на взвешенном состоянии
Переменная БОЛЬШЕ, или переменная МЕНЬШЕ, они принимают значение TRUE, именно при условии когда переменная БОЛЬШЕ или МЕНЬШЕ равны TRUE и включается плата №2 или №3.....SSSergeich писал(а): 01 сен 2020, 18:28Какая переменная и для какой платы?Alex1968 писал(а): 01 сен 2020, 18:12 Переменная для включения платы имеет значение 1, оно инвертируется в 0 и поступает на входы EN дисплея и генератора...и тем самым запрещают их работу...Плату включили и всё на ней выключили ??? Зачем мне включённая плата с отключённым дисплеем и генератором. Итог,на дисплее пусто, светодиод не работает.
Отправлено спустя 56 секунд:
Вы попробовали или предположили?
Отправлено спустя 1 минуту 23 секунды:данетAlex1968 писал(а): 01 сен 2020, 18:12 оно инвертируется в 0 и поступает на входы EN дисплея и генератора
А вы эту переменную инвертируете в FALCE и подаёте на вход EN генератора и дисплея, запрещая их работу.
Попробовал только что естественно на макетке. Дисплей пустой, светодиод не горит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
[ref]Alex1968[/ref], нет
Отправлено спустя 5 минут 2 секунды:
или esp32 или стм...Alex1968 писал(а): 01 сен 2020, 18:31 Значит надо переходить на ESP8266 или ещё что то подобное, с более высокой тактовой частотой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Как отключать платы не на взвешенном состоянии
Вы опять не поняли ? Константа BOLSHE и MENSHE равны значению TRUE, там же на скрине в услвиях отчётливо видно....Вы вешаете на них инверсию, тоесть меняете значение на противоположное на FALCE....При значении FALCE на входе EN генератора и дисплея они работать не будут.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Как отключать платы не на взвешенном состоянии
Вы видите перекресток?
При значении BOLSHE = TRUE я инвертирую переменную MENSHE, которая равна 0 и после этого разрешаю работу!
И наоборот
При значении BOLSHE = TRUE я инвертирую переменную MENSHE, которая равна 0 и после этого разрешаю работу!
И наоборот
Как отключать платы не на взвешенном состоянии
переменная MENSHE и переменнаая BOLSHE могут быть одновременно равны TRUE....И инвертировашись в 0 вешают в нерабочее положение всё что там есть.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Как отключать платы не на взвешенном состоянии
Вам будет трудно, т.к. ...
Alex1968 писал(а): 01 сен 2020, 19:34 переменная MENSHE и переменнаая BOLSHE могут быть одновременно равны TRUE
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя