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

Тема: СП310 Макрос - как обратиться к отдельному биту

  1. #1
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию СП310 Макрос - как обратиться к отдельному биту

    Мне нужно получить значение конкретного бита в PSW. В документации есть такой пример

    Задача: записать значение нулевого бита регистра PSW400 в бит PSB300.

    Код:
    if (PSW[400] & 0x01) 
    { 
        SetPSB(300);
    }
    else
    { 
        ResetPSB(300);
    }
    Здесь речь о нулевом бите, но используется 0х01. Значит индексация идет с 1?

    Если мне нужен например 4й бит PSW500. Правильно ли следующий пример?

    Код:
    BOOL myBit;
    myBit = PSW[500] & 0x04;

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,062

    По умолчанию

    Ваш пример неправильный. 0x01 - это маска, а не номер бита (2#0000_0000_0000_0001).

    В вашем случае надо так:

    Код:
    myBit = PSW[500] & 0x10; // 0x10 = 2#0000_0000_0001_0000.
    Вообще, лучше воспользуйтесь уже готовыми функциями из этого примера:
    http://www.owen.ru/uploads/example_macromemory_v2.zip

  3. #3
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию

    Так в этом примере 5й бит значит. Если 4й то будет

    Код:
    myBit = PSW[500] & 0x08; // 0x08 = 2#0000_0000_0000_1000.
    Правильно?

  4. #4

  5. #5
    Пользователь Аватар для Serhioromano
    Регистрация
    15.09.2015
    Адрес
    Бишкек
    Сообщений
    265

    По умолчанию

    Я когда говорил к 4ому биту имел в виду нумерацию с 1. Ну все понятно в общем. Спасибо Евгений!

Похожие темы

  1. Макрос
    от CEkip в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.04.2012, 21:54
  2. Как из Trace Mode 6 обратиться к МВУ8
    от Sensk в разделе Другие SCADA системы
    Ответов: 19
    Последнее сообщение: 27.10.2010, 21:53
  3. Как из Trace Mode 6 обратиться к МВУ8
    от Sensk в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 07.10.2009, 23:34
  4. Ответов: 1
    Последнее сообщение: 21.09.2007, 16:57

Ваши права

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