Алгоритм следующий:
Код: Выделить всё
.set tack=4 (число тактов за микросекунду)
.set us=10 (задержка в микросекундах)
RCALL Delay (подпрограмма задержки)
Delay:
.set timer=tack*us/5 (вычисляю кол-во проходов подпрограммы задержки, чтобы получилось необходимое кол-во микросекунд)
LDI temp,LOW(timer)
LDI temp1,HIGH(timer)
LDI temp2,BYTE3(timer) (загружаю получившееся в результате вычислений значение)
Delay_start:
SUBI temp,1
SBCI temp1,0
SBCI temp2,0
BRCC Delay_start
RETПробовал в AVR Studio 4.19 и 6.2
