АвторСообщение



Пост N: 2
Зарегистрирован: 27.12.06
Откуда: Россия, Архангельск
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.01.07 00:01. Заголовок: MPASM & Макрос


При разборе программы, в разделе определения названия и положения регистров общего назначения встретилось подобное описание регистров:
ON_FORWARD EQU (1 <<ForLoBit) | (1 <<ForHiBit)
OFF_FORWARD EQU (1 <<ForHiBit)
Чтобы это значило?
Также интересует информация по написанию Макросов.
В программах встречаются часто, напоминает VBasic, хотелось бы разобраться.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


постоянный участник


Пост N: 143
Info: Среднее
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг: 0
Фото:
ссылка на сообщение  Отправлено: 25.01.07 16:39. Заголовок: Re:


Артур, мы ведь кажется уже выяснили что это Artur пишет:

 цитата:
ON_FORWARD EQU (1 <<ForLoBit) | (1 <<ForHiBit)
OFF_FORWARD EQU (1 <<ForHiBit)

сдвиг регистров влево на один бит, причем сразу двух. Я так понимаю что эквивалент первой будет
rlf ForLoBit
rlf ForHiBit
второй
rlf ForHiBit
Единицы здесь как раз и обозначают количество сдвигов. Если бы было 2 то число сдвигов увеличилось в два раза. Поправьте меня если я не прав. Кстати, у тебя есть рускоязычное руководство MPASM? там есть про макросы. Если нет, как нибудь пересечемся, привезу.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1
Зарегистрирован: 02.06.07
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.06.07 18:09. Заголовок: Re:


Доброго всем времени суток .Есть несколько макросов каторые можно присоеденить к тексту прог-мы #include при помощи данной строчки. Согласитесь есть смысл использовать макросы в плане удобства написания и восприятия написаного . Вот несколько примеров
Пример реализации необходимой задержки по времени
;=============== Задержка в милисакундах=========== 
pause_ms macro const,adr
bsf status,5
movlw .1
movwf option_r ;Сконфигурировали под милсек
bcf status,5
movlw const
movwf reg1
bcf status,2
movlw .9
movwf tmr0 ;Корекция под кварц 4мгц
bcf intcon,2
btfss intcon,2
movlw .4
btfss intcon,2
subwf pcl,f
decf reg1,f
nop
movlw .14
btfsc status,2
goto adr
subwf pcl,f
endm
;===============Задержка в секундах==========
pause_s macro const,adr
bsf status,5
movlw .7
movwf option_r
bcf status,5
movlw const
movwf reg1 ;Желаемая пауза
movlw .16
movwf reg2 ;Для формирования 1 сек
bcf status,2
movlw .11
movwf tmr0 ;Корекция
bcf intcon,2
btfss intcon,2
movlw .4
btfss intcon,2
subwf pcl,f
decf reg2,f
nop
movlw .15
btfsc status,2 ;=1
movlw .20
btfsc status,2
decf reg1,f
btfsc status,2
goto adr
subwf pcl,f
endm
;Текст писался с учотом кварца на 4мгц но есть небольшие погрешности. Погрешности можно откоректировать
movlw .11
movwf tmr0 ;Корекция
даной строкой , записывая другие значения в регистр tmr0
В шапке прог-мы необходимо заранее придать регистрам неизменные значения
Все выше написаное проделывается след оброзом
1)необходимо скопировать в буфер сам текст
2)открыть текстовый редактор и закатать все туда
3)сохранить и назвать все это к примеру white.pa (pa расширение неоставляйте txt на конце )
4)скопируйте файл в папку куда сохранили сам проект
Пример присоединения макроса
#include white.pa ;Присоединяем фаил
list p=16f84a
__config 03ff1h
status equ 03h
trisa equ 085h
trisb equ 086h
porta equ 05h
portb equ 06h
pcl equ 02h
option_r equ 81h
intcon equ 0bh
tmr0 equ 01h
reg0 equ 020h
reg1 equ 0ch
reg2 equ 0dh
reg3 equ 0eh
reg4 equ 0fh
f equ .1
w equ 0

org 0
goto start
start bank1 ;
send .0,trisa ;
send .0,trisb ;Это тоже макросы но о них попоже
bank0 ;
on_off pause_ms .200,run_on ;А вот и наш макрос значит задержка 200 милисекунд
;и отпровляем туда куда нам надо <=255
run_on send .255,portb
pause_s .5,run_off ;Тоже самое но пауза состовляет 5 секунд <= 255
run_off clrf portb
goto on_off
end


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия