Помогите, пожалуйста, студенту в освоении микроконтроллеров серии PIC.
В институте дали задание - сделать подпрограмму задержки в 1 мс.
Не могли бы Вы мне указать на мои ошибки и по возможности подправить меня, если я не прав!
;Задача: Сделать программу задержки 1 мс.
WREG_TEMP RES 1 ;2 цикла
STATUS_TEMP RES 1 ;2 цикла
BSR_TEMP RES 1 ;2 цикла
DELAY:
MOVFF WREG,WREG_STATUS; Сохранение контектста. ;2 цикла
MOVFF STATUS,STATUS_TEMP;Для выполнения команды MOVFF требует 2 цикла. ;2 цикла
MOVFF BSR,BSR_TEMP; ;2 цикла
MOVLW .230 ; 1 цикл
MOVWF TEMP1; 1 цикл
M1: DECFSZ TEMP1; Постепенное уменьшение на 1 значения в регистре TEMP1. 2 цикла
BRA M1; с проверикой флага Z.
MOVFF WREG_STATUS,WREG; Восстановление контектста. 2 цикла
MOVFF STATUS_TEMP,STATUS; 2 цикла
MOVFF BSR_TEMP,BSR; 2 цикла
RET;
;1 цикл=4 такта. F.такт=F.ген/4=1Мгц. 1 такт=1мкс. 1 цикл=4мкс.
;Общее кол-во циклов:2*6+1+1+2*3=20
;20 циклов займут: 20*4мкс=80 мкс, тогда нам останется 1000-80=920мкс, т.е 920/4=230, его и записываем в TEMP1.


