B = A.0

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

B = A.0

Сообщение Voldemus » 09 окт 2022, 16:53

Добрый день

Надо в макросе присвоить B значение нулевого бита A

Код: Выделить всё
macro_command main()

unsigned short A
bool B

B = A.0 // так не получается, компилятор выдает ошибку

end macro_command


P.S.
Используйте оформление текста макросов тегами [Code] !
Voldemus
 
Сообщения: 26
Зарегистрирован: 27 авг 2015, 15:41

Re: B = A.0

Сообщение dimensy » 09 окт 2022, 17:11

используйте функцию GETBIT
dimensy
 
Сообщения: 143
Зарегистрирован: 14 мар 2018, 17:54

Re: B = A.0

Сообщение Voldemus » 09 окт 2022, 17:19

Спасибо, работает.
Voldemus
 
Сообщения: 26
Зарегистрирован: 27 авг 2015, 15:41

Re: B = A.0

Сообщение Voldemus » 09 окт 2022, 17:25

А как сделать обратную запись, например. A.3 = B
Voldemus
 
Сообщения: 26
Зарегистрирован: 27 авг 2015, 15:41

Re: B = A.0

Сообщение dimensy » 09 окт 2022, 18:23

Прямой функции нет, поэтому анализировать В и использовать функции SETBITON и SETBITOFF

Код: Выделить всё
if B then
   SETBITON(A, A, 3)
else
   SETBITOFF(A, A, 3)
end if
dimensy
 
Сообщения: 143
Зарегистрирован: 14 мар 2018, 17:54

Re: B = A.0

Сообщение Voldemus » 10 окт 2022, 12:36

Я так и думал.
Voldemus
 
Сообщения: 26
Зарегистрирован: 27 авг 2015, 15:41


Вернуться в Weintek

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 3