как крутануть плату по условию что бы в ней завершились все циклы ?

Ответить
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

как крутануть плату по условию что бы в ней завершились все циклы ?

Сообщение fefar51702 »

ДЕЛ.flp
по экспериментам показало что если плату выполнить по условию то она начнётся выполнятся но концовка до неё не дойдёт
к примеру пробую записать в переменную значение при старте мк
и анализатор на 7 пине показывает что 1 пришла и осталась на нём не завершив свои дела в 0
это при условии что мы берём переменную 0 и подключаем на ЕН теста

теперь пробую зациклить плату и не могу сообразить пока что как без лишних блоков незабирая много оперативной памяти крутануть плату в цикле что бы там всё отработало от 1 до 0 на ЕН
щас получается что 1 записывается но цикл тут же сбрасывается потому что срабатывание происходит по дублированой переменной а не по начальной подключенной к пину 7

можно начать запихивать туда генераторы счётчики ... но это такое

и можно ли добавить в плату в раздел циклирование не только по переменной но и по любому количеству циклов введённых в ручную
допустим если бы такое было то я бы поставил 2 и цикл бы крутанулся два раза и всё было бы прекрасно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Phazz
Полковник
Сообщения: 3130
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 234 раза
Поблагодарили: 114 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение Phazz »

А почему вы решили, что она еще что-то будет делать?

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

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;
И далее этот цикл не будет выполнятся пока пер1 не будет опять равна 1. А вых7 при этом будет всегда равен 1
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение fefar51702 »

а я и не говорил что она будет что то делать
но вы ответили на проблему что на выходе 7 будет всегда единица потому что процес не закончился внутри платы

давайте поясню уже не первый год сталкиваюсь с проблемой что плату надо выполнить в 1 цыкл но при этом в ней должно всё выполнится
и не важно запись в переменную или подать на 7 вывод импульс который в данном случае превращается в постоянную 1
отсюда и проблемы с дисплеем заодно который нельзя выполнить в 1 цыкл платой он замораживает показания

цель : получить на ЕН импульс а не замороженую единицу

расмотрим первую попытку :
вызываем срабатывание платы по ртриг
и этот же ртриг подаём на ЕН
(так пробует делать по началу большинство а то и все походу)
на деле имеем (берём цыкл круговорота от конкретного момента) = ртриг сработал и наш цыкл начался и плата включилась в которой на ЕН начал подаваться 1 далее идут исполнения других плат и цыкл заканчивается на ртриг с которого начали а ЕН на плате исполнения так и не дождался завершения своего цыкла !! т.к. плата исключилась из работы далее

расмотрим вторую попытку :
вызываем срабатывание платы по ртриг
и пробуем её зацыклить что позволяет нам крутануть внутри платы все процесы
я имею ввиду выполнить полноценный цыкл для этой платы и на второй цыкл выйти из платы и далее отработают все платы и общий выделеный для отщёта цыкл закончится на ртриге
Аватара пользователя
Phazz
Полковник
Сообщения: 3130
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 234 раза
Поблагодарили: 114 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение Phazz »

Это не баг, а не понимание процессов. Я уже расписал вам почему это происходит. Чтобы в вашем случае выполнить 2 цикла нужен как минимум счётчик. Ну либо Сергею добавить цикл for со счётчиком.
Аватара пользователя
Phazz
Полковник
Сообщения: 3130
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 234 раза
Поблагодарили: 114 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение Phazz »

Опишите пошагово нужный вам алгоритм. Я его реализую в качестве примера.
Аватара пользователя
Phazz
Полковник
Сообщения: 3130
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 234 раза
Поблагодарили: 114 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение Phazz »

Чтобы получить импульс, необходимо 2 цикла. Первый цикл переводит состояние в true второй цикл обратно в false. Либо если необходимо за один цикл, то в начале платы устанавливаем true, в конце платы false.
Аватара пользователя
fefar51702
Сержант
Сообщения: 248
Зарегистрирован: 26 июн 2022, 07:35
Имя: Валера
Благодарил (а): 1 раз
Поблагодарили: 5 раз

Re: как крутануть плату по условию что бы в ней завершились все цыклы ?

Сообщение fefar51702 »

я уже решил проблему
пришлось добавить математику
тупо на переменных не получается реализовать
ну и так вроде немного кушает памяти
2024-12-02_124529.png
теперь на втором цыкле у меня происходит выход и завершение всех процесов
вот такой вариант можно добавить в платы
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Re: как крутануть плату по условию что бы в ней завершились все циклы ?

Сообщение Naladchik »

111.jpg
2а цикла на переменных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя