как крутануть плату по условию что бы в ней завершились все циклы ?
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
как крутануть плату по условию что бы в ней завершились все циклы ?
к примеру пробую записать в переменную значение при старте мк
и анализатор на 7 пине показывает что 1 пришла и осталась на нём не завершив свои дела в 0
это при условии что мы берём переменную 0 и подключаем на ЕН теста
теперь пробую зациклить плату и не могу сообразить пока что как без лишних блоков незабирая много оперативной памяти крутануть плату в цикле что бы там всё отработало от 1 до 0 на ЕН
щас получается что 1 записывается но цикл тут же сбрасывается потому что срабатывание происходит по дублированой переменной а не по начальной подключенной к пину 7
можно начать запихивать туда генераторы счётчики ... но это такое
и можно ли добавить в плату в раздел циклирование не только по переменной но и по любому количеству циклов введённых в ручную
допустим если бы такое было то я бы поставил 2 и цикл бы крутанулся два раза и всё было бы прекрасно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
А почему вы решили, что она еще что-то будет делать?
И далее этот цикл не будет выполнятся пока пер1 не будет опять равна 1. А вых7 при этом будет всегда равен 1
Код: Выделить всё
if (_gtv1 == 1) {
while (_gtv3 == 1) { //Цикл начался потому что пер1 == 1
if (_gtv3){ //если пер1 == 1
_gtv2 = 99999999UL; // устанавливаем ТЕСТ = 9999
}
digitalWrite(7, _gtv3); //вых7 = пер1
_gtv3 = !(_gtv3); //пер1 = инвертированной пер1
}
} //Выходим из цикла потому что пер1 = 0;
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
а я и не говорил что она будет что то делать
но вы ответили на проблему что на выходе 7 будет всегда единица потому что процес не закончился внутри платы
давайте поясню уже не первый год сталкиваюсь с проблемой что плату надо выполнить в 1 цыкл но при этом в ней должно всё выполнится
и не важно запись в переменную или подать на 7 вывод импульс который в данном случае превращается в постоянную 1
отсюда и проблемы с дисплеем заодно который нельзя выполнить в 1 цыкл платой он замораживает показания
цель : получить на ЕН импульс а не замороженую единицу
расмотрим первую попытку :
вызываем срабатывание платы по ртриг
и этот же ртриг подаём на ЕН
(так пробует делать по началу большинство а то и все походу)
на деле имеем (берём цыкл круговорота от конкретного момента) = ртриг сработал и наш цыкл начался и плата включилась в которой на ЕН начал подаваться 1 далее идут исполнения других плат и цыкл заканчивается на ртриг с которого начали а ЕН на плате исполнения так и не дождался завершения своего цыкла !! т.к. плата исключилась из работы далее
расмотрим вторую попытку :
вызываем срабатывание платы по ртриг
и пробуем её зацыклить что позволяет нам крутануть внутри платы все процесы
я имею ввиду выполнить полноценный цыкл для этой платы и на второй цыкл выйти из платы и далее отработают все платы и общий выделеный для отщёта цыкл закончится на ртриге
но вы ответили на проблему что на выходе 7 будет всегда единица потому что процес не закончился внутри платы
давайте поясню уже не первый год сталкиваюсь с проблемой что плату надо выполнить в 1 цыкл но при этом в ней должно всё выполнится
и не важно запись в переменную или подать на 7 вывод импульс который в данном случае превращается в постоянную 1
отсюда и проблемы с дисплеем заодно который нельзя выполнить в 1 цыкл платой он замораживает показания
цель : получить на ЕН импульс а не замороженую единицу
расмотрим первую попытку :
вызываем срабатывание платы по ртриг
и этот же ртриг подаём на ЕН
(так пробует делать по началу большинство а то и все походу)
на деле имеем (берём цыкл круговорота от конкретного момента) = ртриг сработал и наш цыкл начался и плата включилась в которой на ЕН начал подаваться 1 далее идут исполнения других плат и цыкл заканчивается на ртриг с которого начали а ЕН на плате исполнения так и не дождался завершения своего цыкла !! т.к. плата исключилась из работы далее
расмотрим вторую попытку :
вызываем срабатывание платы по ртриг
и пробуем её зацыклить что позволяет нам крутануть внутри платы все процесы
я имею ввиду выполнить полноценный цыкл для этой платы и на второй цыкл выйти из платы и далее отработают все платы и общий выделеный для отщёта цыкл закончится на ртриге
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
Это не баг, а не понимание процессов. Я уже расписал вам почему это происходит. Чтобы в вашем случае выполнить 2 цикла нужен как минимум счётчик. Ну либо Сергею добавить цикл for со счётчиком.
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
Опишите пошагово нужный вам алгоритм. Я его реализую в качестве примера.
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
Чтобы получить импульс, необходимо 2 цикла. Первый цикл переводит состояние в true второй цикл обратно в false. Либо если необходимо за один цикл, то в начале платы устанавливаем true, в конце платы false.
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: как крутануть плату по условию что бы в ней завершились все цыклы ?
я уже решил проблему
пришлось добавить математику
тупо на переменных не получается реализовать
ну и так вроде немного кушает памяти
теперь на втором цыкле у меня происходит выход и завершение всех процесов
вот такой вариант можно добавить в платы
пришлось добавить математику
тупо на переменных не получается реализовать
ну и так вроде немного кушает памяти
теперь на втором цыкле у меня происходит выход и завершение всех процесов
вот такой вариант можно добавить в платы
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Re: как крутануть плату по условию что бы в ней завершились все циклы ?
2а цикла на переменных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя