появился кусочек досуга....
;#################################
.DSEG ;data segment (internal RAM)
TABLE: .byte 8 ;table
;#################################
.CSEG
.org 0
rjmp RESET
...
...
;#################################
RESET:
ldi temp0,RAMEND ; Locate stack
out SPL,temp0
;#################################
clr temp1
clr temp0
ldi ZL,low (FSMIT*2) ;load ROM full step interlaced table base
ldi ZH,high(FSMIT*2)
ldi temp0,8 ;load table size
ldi YL,low (TABLE) ;load RAM phase table base
ldi YH,high(TABLE)
Tb_Ld:
lpm ;read byte from ROM to r0
st Y+,r0 ;store value in RAM
adiw ZL,0x01 ;increment flash pointer
dec temp0 ;decrement counter
brne Tb_Ld ;continue until table is loaded
FSMIT: .db 0x90,0x30,0x60,0xC0,0x90,0x30,0x60,0xC0
;#################################
вопросы:
0) это ведь для того, что бы расположить константы в РАМ ?
1) по сравнению с тупым закатыванием констант в РАМ, смысл в подобной байде - экономия места ? и/или скорости ?
2) все ли куски кода я вычепил из "Контроллер шагового двигателя" Л. И. Ридико, или ещё что то забыл ?
пока всё .....