Показано с 1 по 4 из 4

Тема: Вопрос по синтаксису языка ST

  1. #1

    По умолчанию Вопрос по синтаксису языка ST

    Мне нужно проверить, установлен ли бит в переменной. Как правильно написать:
    Код:
    VAR
    x : WORD;
    END_VAR
    
    IF ( x AND 2#00000001 ) <- тут ошибка
    THEN
     ........
    END_IF

  2. #2

    По умолчанию

    Любую литературу по Паскалю читать
    или он-лайн

    А по факту
    условие для IF д.б. логическим выражением или логической константой
    Например
    IF WORD_TO_BOOL(x AND 2#00000001) THEN

    (* ........
    *)
    END_IF
    Это если бит "0" в х установлен в 1


    ЗЫ.
    Забыл сказать
    результатом x AND 2#00000001 будет WORD
    Последний раз редактировалось Мимоход; 22.10.2018 в 11:26.

  3. #3

    По умолчанию

    Естественно, что вместо этого огорода можно сразу
    IF x.0 THEN
    (* ........ проверяем 0 бит
    *)
    END_IF

    IF x.6 THEN
    (* ........ проверяем 6 бит
    *)
    END_IF
    Последний раз редактировалось Мимоход; 22.10.2018 в 11:25.

  4. #4

    По умолчанию

    Цитата Сообщение от Мимоход Посмотреть сообщение
    Любую литературу по Паскалю читать
    или он-лайн
    А я Паскаль с института не люблю, мне больше нравится все, что похожее на СИ

    Цитата Сообщение от Мимоход Посмотреть сообщение
    А по факту
    условие для IF д.б. логическим выражением или логической константой
    Например
    IF WORD_TO_BOOL(x AND 2#00000001) THEN

    (* ........
    *)
    END_IF
    Это если бит "0" в х установлен в 1


    ЗЫ.
    Забыл сказать
    результатом x AND 2#00000001 будет WORD
    Ага, вот в чем дело! Спасибо, мне как раз этот вариант нужен был

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •