Вызов заданного количества nop

Тема в разделе "Arduino & Shields", создана пользователем postal2201, 17 дек 2024.

  1. postal2201

    postal2201 Нерд

    Приветствую!
    Есть необходимость в точных задержках, основанных на циклах мк. Соответственно нужно вызывать __asm__ __volatile__ ("nop\n\t")

    Можно ли задефайнить это дело чтобы вызывать сразу n-ое NOP'ов, без накладных расходов на счетчики и прочее?

    Например NOP 15; и мк должен будет пропустить 15 циклов
     
  2. parovoZZ

    parovoZZ Гуру

    так в библиотеках AVR уже есть свои прецизионные делеи. Зачем изобретать велосипед?
     
    Asper Daffy и DetSimen нравится это.
  3. postal2201

    postal2201 Нерд

    parovoZZ, можете привести пример delay на определенное количество тактов? Пусть например нужно пропустить 64 такта.
     
  4. parovoZZ

    parovoZZ Гуру

  5. Asper Daffy

    Asper Daffy Иксперд

    1. Согласен с Паровозом

    2.
    Можно, если хочется, в чём проблема-то?

    Я когда пишу на ассемблере, иногда использую вот такой макрос:
    Код (Text):

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;
    ; Генерирует ровно amount nop'ов
    ;
    .macro  nops amount
        .if \amount > 0
            nop
            nops (\amount-1)
        .endif
    .endm