Ср июн 16, 2021 03:07:08
Ср июн 16, 2021 04:59:36
.equ Fo=16345677
DELAY_MS:
;25MS
; LDI R19,BYTE4(25*Fo/1000/6)
; LDI R20,BYTE3(25*Fo/1000/6)
; LDI R21,BYTE2(25*Fo/1000/6)
; LDI R22,BYTE1(25*Fo/1000/6)
;2567MS
LDI R19,BYTE4(2567*Fo/1000/6)
LDI R20,BYTE3(2567*Fo/1000/6)
LDI R21,BYTE2(2567*Fo/1000/6)
LDI R22,BYTE1(2567*Fo/1000/6)
GO_DEL:
SUBI R22,BYTE1(1)
SBCI R21,BYTE2(1)
SBCI R20,BYTE3(1)
SBCI R19,BYTE4(1)
BRNE GO_DEL
RJMP DELAY_MS
- Код:
.
.
.
rcall DELAY_M_S
PUSH Delay1
PUSH Delay2
PUSH Delay3
PUSH Delay4
.endm
Ср июн 16, 2021 06:48:16
По мне, так гораздо проще
Кстати, выход из макроса правильный?
Ср июн 16, 2021 07:28:13
Ср июн 16, 2021 08:56:06
Ср июн 16, 2021 09:37:08
Ср июн 16, 2021 15:14:57
В указанном месте должны стоять POPы.
dgrett писал(а):Но городить в серьёзных программах ТАКИЕ вещи - не понятно. Контроллеру некогда будет работать, он будет постоянно висеть в этих задержках.
Ключевое слово - вроде.
Ср июн 16, 2021 15:41:27
Ср июн 16, 2021 15:56:58
Реакцию лпм ждём в микросекундах? Такого у меня точно не было.
Ср июн 16, 2021 16:44:38
Ср июн 16, 2021 17:10:02
Стесняюсь спросить, а чем у Вас заняты таймеры?
То есть самый нулевой таймер, выдающий прерывание каждые 10 мС справится и с задержками и с тем, что Вы ещё повесили.
И не будет ни 11 ни 27 кБ. Может и в тиньку влезет:)
Ср июн 16, 2021 18:10:38
Ср июн 16, 2021 18:21:28
Ср июн 16, 2021 20:37:37
Ср июн 16, 2021 20:54:14
Ср июн 16, 2021 21:33:53
Опять стесняюсь спросить, зачем там у Вас вообще мк нужен?
В одном аппаратном таймере несложно сделать несколько виртуальных. Закинул в определённый регистр заданную длительность задержки - и продолжаешь выполнять рабочую программу, периодически посматривая на флаг ЗАДЕРЖКА ОТРАБОТАНА.
Ср июн 16, 2021 22:01:16
Ср июн 16, 2021 23:13:20
Вы и так в бесконечном цикле сидите, мк по другому не может.
А вообще, я теперь понимаю, откуда 27кБ.
Опять стесняюсь спросить, зачем там у Вас вообще мк нужен?
ПилИте, Шура (с)
Чт июн 17, 2021 06:34:31
Чт июн 17, 2021 06:48:23
у Вас дар речи отнимет.
Я могу для Вас написать обработчик этой шняги без всяких задержек. Так, как сделал бы себе. Но только не с телефона.
А мк, повторюсь, ВСЕГДА работает в непрерывном цикле. И быть иначе не может.