Страница 104 из 135 ПерваяПервая ... 45494102103104105106114 ... ПоследняяПоследняя
Показано с 1,031 по 1,040 из 1349

Тема: Hardella IDE

  1. #1031

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Значит общая память 1024 команды для двух PRU. А деление памяти между двумя PRU произвольное? Например 30% для PRU1 и 70% для PRU2.
    Нет. У каждого PRU ядра своя память.
    PRU0 -- 1024 команды
    PRU1 -- 1024 команды

  2. #1032

    По умолчанию

    Все команды для PRU четырехбайтные ?

  3. #1033

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Все команды для PRU четырехбайтные ?
    Да, все занимают по 4 байта.

  4. #1034

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Максимальный размер программы -- 1024 PRU команды (4096 байт). Суммарно может быть 2 программы одновременно (одна для PRU0, вторая для PRU1)
    Размер занимаемой памяти видно в коде генерируемой ..._PruXInit программы.

    Например:
    Код:
    ...
    PROGRAM BlinkningLeds_Pru1Init
    (* Generated by Hardella IDE 1.8.0: https://hardella.com *)
    VAR_INPUT
      enable : BOOL := TRUE; (* PRU is reset on the R_TRIG(enable) *)
    END_VAR
    VAR_OUTPUT
      running : BOOL := FALSE; (* TRUE when PRU is running *)
    END_VAR
    VAR
      initDone : BOOL := FALSE;
      enTrg : R_TRIG;
      xx, yy : POINTER TO DWORD;
      x, i : DWORD;
      pruCode : ARRAY[1..38] OF DWORD :=
          16#51000102, 16#15012121, 16#01002141, 16#15012161, 16#24f08082, 16#2402fac2, 16#91000303, 16#51000306, 16#51020301, 16#51030302
        , 16#91040301, 16#24000003, 16#81000303, 16#24780ce3, 16#f1002383, 16#013ce3e3, 16#66e2e3f6, 16#00e2e0e0, 16#24780ce3, 16#f1002384
        , 16#010ae4e4, 16#48e4e203, 16#240000e5, 16#21001ee1, 16#04e4e2e5, 16#c900e502, 16#1501e5e5, 16#5100e503, 16#0502e5e5, 16#6f00e5ff
        , 16#e1002385, 16#11ffde82, 16#090841c2, 16#12c28282, 16#090961c2, 16#12c28282, 16#010082de, 16#210000e1;
    END_VAR
    ...
    Это означает (см объявление переменной pruCode), что программа BlinkningLeds занимает 38 из 1024 команд в PRU1.
    Владимир, у меня PRU1 управляет драйвером ШД. Код занимает 490 слов. Хочу управлять через PRU1 еще одним драйвером ШД. Правильно я понимаю, что памяти для этого хватит (490 + 490 = 980) ?

  5. #1035

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Владимир, у меня PRU1 управляет драйвером ШД. Код занимает 490 слов. Хочу управлять через PRU1 еще одним драйвером ШД. Правильно я понимаю, что памяти для этого хватит (490 + 490 = 980) ?
    Пробуйте. Да, может получиться.

    И, да, если расскажете о задаче, может навести меня на какую-нибудь мысль.

    Я всё подумываю добавить "изменение скорости на ходу" и т.п., но никак не приходит в голову как оно концептуально должно работать.
    Как какая-то очередь команд что-ли?
    Грубо говоря:
    host -> pru: "едем 2 метра". "Ок, поехали"
    host -> pru: "кстати, потом ещё метр". "Ясно, не забуду"
    host -> pru: "а потом останавливаемся по DI1". "Ясно, не забуду"
    host -> pru: "Эй, тормози прямо щас, там палец прижало!". pru: "Хорошо, стоим"

    Так что-ли?

  6. #1036

    По умолчанию

    Я в своей задаче от идеи изменения скорости ШД на ходу отказался. Вместо этого хочу ввести в проект еще один ШД. Итого хочу управлять тремя ШД. Если от одного PRU получится управлять двумя ШД, то задача, скорее всего, будет решена. Памяти для программы вроде хватает, а вот хватит ли регистров для хранения переменных, объявленных в FB Steper. У меня в этом FB несколько переменных объявлены как DWORD. Компилятор Hardella выдаст сообщение если регистров не будет хватать ?

  7. #1037

    По умолчанию

    Цитата Сообщение от IVM
    Памяти для программы вроде хватает, а вот хватит ли регистров для хранения переменных, объявленных в FB Steper. У меня в этом FB несколько переменных объявлены как DWORD. Компилятор Hardella выдаст сообщение если регистров не будет хватать ?
    Да, кстати, может не хватить. Если не хватит, то будет ошибка.

  8. #1038

    По умолчанию

    Еще вопрос. Как в программе для PRU объявить два одинаковых ФБ ?

  9. #1039

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Еще вопрос. Как в программе для PRU объявить два одинаковых ФБ ?
    Что значит "два одинаковых"?
    Если они прямо совсем одинаковые, то достаточно один раз объявить, и при использовании создать 2 переменых.

    Например:
    drive1: PRU_STEPPER;
    drive2: PRU_STEPPER;

    Если немного разные, то, например, ctrl+c/v и вперёд.

  10. #1040

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Что значит "два одинаковых"?
    Если они прямо совсем одинаковые, то достаточно один раз объявить, и при использовании создать 2 переменых.

    Например:
    drive1: PRU_STEPPER;
    drive2: PRU_STEPPER;

    Если немного разные, то, например, ctrl+c/v и вперёд.
    Все ясно. Завтра попробую.

Страница 104 из 135 ПерваяПервая ... 45494102103104105106114 ... ПоследняяПоследняя

Ваши права

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