singlepost

Вопрос по асму << На главную или назад  

вот кусочек программы:

SETB p1.2 ;устанавливаем p1.2 в 1
;сдесь код, который выполняет задержку на 2 секунды
CLR p1.2 ;устанавливаем p1.2 в 0

Вопрос: что надо вставить между этими командами, чтобы осуществить задержку?

NOP не катаит, т.к. продолжительность задержки будет зависить от тактовой частоты.

14 ответов в теме “Вопрос по асму”

  1. 5
    Тоша Мартынов ответил:

    а можно настроить таймер и взять нужное количество переполнений таймера.

  2. 4
    Данил Витязев ответил:

    спс, попробую)

  3. 3
    Роман Баранник ответил:

    к примеру:

    setpp1.2;
    callpause;
    clr p1.2;

    ;——————————————————————————–
    pause:; помоему будет где то около 1 сек на 12 МГц
    mov R1,#255
    mov R2,#255
    mov R3,#8
    stop:
    djnz R1,stop
    djnz R2,stop
    djnz R3,stop
    ret

  4. 2
    Роман Баранник ответил:

    но это по первобытному, а вообще правильнее использовать библиотеку <delay.h> )

  5. 1
    Роман Баранник ответил:

    библиотека есть <delay.h>. Либо придумать цикл и подогнать время его работы в отладчике по частоте твоего кварца

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.