Показано с 1 по 10 из 18

Тема: Обращение через указатель. Перезагрузка

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    может быть POINTER TO BYTE? или ARRAY [1..XXX] OF WORD?

    или

    FUNCTION SetWord : DWORD

    VAR_INPUT
    i_dwAddress: POINTER TO BYTE;
    i_wVal: WORD;
    END_VAR

    (* res *)
    i_dwAddress^ := WORD_TO_BYTE( i_wVal / 256 );
    i_dwAddress := i_dwAddress + 1;
    i_dwAddress^ := WORD_TO_BYTE( i_wVal );

    SetWord := i_dwAddress + 1;

  2. #2

    По умолчанию

    Спасибо,этот вариант понятен.

    Исходный с несовпадением типа массива и указателя использовать нельзя?
    (В нескольких проектах работает без проблем)

  3. #3

    По умолчанию

    Цитата Сообщение от mkhm Посмотреть сообщение
    Спасибо,этот вариант понятен.

    Исходный с несовпадением типа массива и указателя использовать нельзя?
    (В нескольких проектах работает без проблем)
    Процессор ARM очень жёстко различает операции обращения к байтам, словам и двойным словам. И ADR[8] имеет нечётный адрес, по которому можно обращаться только и исключительно побайтно. Иначе в процессоре генерится исключение и процессор, видя ошибку в адресе уходит в перезагрузку.
    Тролль-наседка, добрый, нежный и ласковый

Похожие темы

  1. Ответов: 18
    Последнее сообщение: 08.10.2021, 22:54
  2. Обращение к переменной из MasterLink
    от OrionK в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 28.02.2013, 11:23
  3. Ответов: 2
    Последнее сообщение: 13.01.2011, 15:47
  4. бит через указатель
    от Freddy в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 20.07.2010, 09:08
  5. Ответов: 5
    Последнее сообщение: 02.04.2010, 10:05

Ваши права

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