Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22

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

  1. #1

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

    Я имею опыт программирования микроконтроллеров на ассемблерах.
    А с ПЛК/СПК только начал разбираться...
    Не смог в ST найти столь привычную мне ассемблерную фишку - проименовать отдельные биты переменной. Неужели в ST это невозможно?

    Вот, допустим, мне надо иметь ворд флагов и оперировать ими как всеми сразу, так и по отдельности - именами (а не номером бита)

    Меня бы устроил и такой вариант - структура с нужными именами бит. Но как переменную типа этой структуры обнулить одним махом? Или скопировать одним махом в переменную типа word. Способа не нашёл. А писать 16 выражений присвоения нуля каждому элементу структуры, или делать целую функцию складывающую веса бит чтобы получить ворд - это дурь.

  2. #2
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Объявили
    var:word (byte, dword);

    Управляем
    var.0:=true;
    var.1:=false;

    Обнуляем
    var:=0;

  3. #3

    По умолчанию

    Я же сразу сказал - номера бит не устраивают. Нужны имена.

  4. #4
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Цитата Сообщение от gs_62 Посмотреть сообщение
    Я же сразу сказал - номера бит не устраивают. Нужны имена.
    Modbus Slave
    Добавить переменные по 8 бит и именовать.

    Либо структура + SysLibMem

  5. #5

    По умолчанию

    Цитата Сообщение от приборист Посмотреть сообщение
    Modbus Slave
    Добавить переменные по 8 бит и именовать.

    Либо структура + SysLibMem
    А где взять SysLibMem?

  6. #6

    По умолчанию

    Цитата Сообщение от gs_62 Посмотреть сообщение
    Я же сразу сказал - номера бит не устраивают. Нужны имена.
    Делай раз в цикле упаковку/распаковку и будет возможность оперировать битами как всеми сразу, так и по отдельности

    bit0 := word.0; word.0 := bit0;
    bit1 := word.1; word.1 := bit1;
    .....

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,667

    По умолчанию

    Присвоение можно сделать один раз в начале цикла
    имя1 := переменная.0
    имя2 := переменная.1
    .
    .
    в программе делайте что хотите, хоть переменная AND 0xFE
    хоть имя1 := true

  8. #8

    По умолчанию

    Буду делать распаковки-упаковки.
    Но мне, ассемблерщику, это как серпом по я...м

  9. #9
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Не нужно ничего паковать.
    Объявите переменную и обращайтесь к ее битам
    в любом месте прг
    как писано выше
    <имя переменной>.n (номер бита 0...15, для ворд к примеру)

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от gs_62 Посмотреть сообщение
    Я имею опыт программирования микроконтроллеров на ассемблерах.
    А с ПЛК/СПК только начал разбираться...
    Не смог в ST найти столь привычную мне ассемблерную фишку - проименовать отдельные биты переменной. Неужели в ST это невозможно?

    Вот, допустим, мне надо иметь ворд флагов и оперировать ими как всеми сразу, так и по отдельности - именами (а не номером бита)

    Меня бы устроил и такой вариант - структура с нужными именами бит. Но как переменную типа этой структуры обнулить одним махом? Или скопировать одним махом в переменную типа word. Способа не нашёл. А писать 16 выражений присвоения нуля каждому элементу структуры, или делать целую функцию складывающую веса бит чтобы получить ворд - это дурь.
    Можно использовать битовую адресацию через глобальные константы. Никаких структур ненужно.
    Здесь я писал про это для КДС v2, но наверно и в v3 будет работать http://www.owen.ru/forum/showthread....l=1#post233693
    Захват-4.png
    Хотите обращайтесь к битам по именам, хотите - к слову целиком.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Вопросы о САУ-У
    от FPavel в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 31.05.2022, 20:38
  2. Вопросы о СИ-8
    от Леонов Андрей в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 27.11.2014, 18:00
  3. вопросы по рм1
    от nikita в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 09.02.2010, 17:55
  4. Вопросы по трм-151-01
    от dag1975 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 17.06.2009, 16:11
  5. Вопросы
    от Мурат в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.01.2007, 03:24

Ваши права

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