Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

всё таки хотелось бы мне с "таблицами" в ассемблере разобраться...

Отправлено nestandart 20 января 2008 г. 14:02


появился кусочек досуга....


;#################################
.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) все ли куски кода я вычепил из "Контроллер шагового двигателя" Л. И. Ридико, или ещё что то забыл ?

пока всё .....


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru