Отговори на тема  [ 11 мнения ] 
Âúïðîñ çà CCS è asm macro 
Автор Съобщение
Мнение Âúïðîñ çà CCS è asm macro
Èñêàì äà èçïîëçâàì ãîòîâà àñåìáëåðñêà ïðîãðàìà â ïðîãðàìà íà c (CCS).  asm ïðîãðàìàòà ñå èçïîëçâàò ðàçëè÷íè macro äåôèíèöèè êàòî íàïðèìåð :

JNB macro FADDR,NBIT,ADDR ; BRANCH IF BIT = 0
BTFSS FADDR,NBIT
GOTO ADDR
endm

Êàê òðÿáâà äà äåôèíèðàì â Ñ òåçè macro çà äà ñòàíàò ðàçáèðàåìè çà
CCS àñåìáëåðà?


Сря Апр 06, 2005 10:14 am
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ами просто си пишеш
Код:
#ASM
....
your asm code here...
#ENDASM

На компилатора трябва да му кажеш какво е FADDR, NBIT и пр...:
Код:

#define FADDR 0x21 // Къде стои FADDR
#deifne NBIT     4      // Схващаш
Macro се пише така:
Код:
#define my_macro {btfsc FADDR,NBIT; GOTO ADDR;}
. Само да добавя, че няма много смисъл от писане със macro в CCS, същия код ако го напишеш за 16-ka например, компилатора решава сам дали да го постави като макро или да го извика с call (в зависимост от това колко stack space има)... :)


Сря Апр 06, 2005 11:23 am
Профил
Мнение CCS è asm macro
Íåùî íå ñúì îáÿñíèë.
Íå æåëàÿ äà ïèøà ìàêðîñè, òå ñà ñè íàïèñàíè è äåêëàðèðàíè â asm
ôàéëà. Íî àñåìáëåðà íà CCS íå ðàçáèðà äåôèíèöèÿòà macro. Çà äà íå ñè èãðàÿ äà çàìåíÿì âñåêè ìàêðîc ñ ïîðåäèöà îò asm èíñòðóêöèè
(òå ñå èçïîëçâàò íàä 100 ìåñòà) â àsm ôàéëà èñêàì äà ïðåðàáîòÿ ñàìî macro äåôèíèöèèòå(òå ñà ñàìî 4) äà ñòàíàò ðàçáèðàåìè çà CCS
àñåìáëåðà.
Íå ìîãà äà ðàçáåðà èäåÿòà.Àêî íàïðàâÿ òîâà äåôèíèðàíå:
#define FADDR 0x21 // Êúäå ñòîè FADDR
#deifne NBIT 4 // áèò

FADDR è NBIT ñå ôèêñèðàò. Äîêàòî ìàêðîñà ñå âèêà
ñ ðàçëè÷íè ïàðàìåòðè. Íàïðèìåð:
JNB PORTA,1,ADDR1;
.
.
JNB PORTB,6,ADDR9


Сря Апр 06, 2005 1:13 pm
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ми ся си такова мамата...напиши го като функция...за друго не се сещам...Няма да ти отнеме кой знае колко време да заместиш всичко с CTRL+R :)


Сря Апр 06, 2005 1:22 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Фев 04, 2005 9:54 am
Мнения: 50
Местоположение: Null
Мнение 
Компилирай асемблерския код с макросите в MPLAB и вземи листинговия файл - от там си копирай подробния асемблерски код и го сложи в CCS.


Сря Апр 06, 2005 3:31 pm
Профил
Мнение CCS
Çà ñúæàëåíèå ñå îêàçà ÷å ñå ïîëçâàò íà ìíîãî ìåñòà
è ìàêðîñè íà ÌPASM êàòî addcf è äð. êîèòî íå ñå ðàçáèâàò â
ëèñòèíãà. Áåç ëèíêåð ëîøà ðàáîòà.

Äåôèíèöèÿòà òðÿáâà äà å íåùî ïîäîáíî:
#define JNB(FADDR,NBIT,ADDR) BTFSS FADDR,NBIT GOTO ADDR

èëè
#define JNB(FADDR,NBIT,ADDR) {#asm
BTFSS FADDR,NBIT
GOTO ADDR
#endasm
}
Íî íåìîãà äà ãî ïîäêàðàì. :x


Сря Апр 06, 2005 4:47 pm
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ами напиши го:
Код:
void JNB (int8 FADDR,NBIT)
{#asm
BTFSS FADDR,NBIT
GOTO ADDR
#endasm
}
.
За листинга имаше един директив #LIST, с който всичко след него се листва...погледни в хелпа че съм го забравил как беше.


Сря Апр 06, 2005 4:50 pm
Профил
Мнение CCS asm macro
Âàðèàíòà ôóíêöèÿ èìà ðåäèöà íåóäîáñòâà:
1. Ïðåðåäàêòèðàíå
2. Èçïîëçâàíå íà îùå åäíî íèâî íà ñòåêà
3. Ïîâå÷å öèêëè è ò.í.
Êàçàíî íàêðàòêî ïðîãðàìàòà âå÷å íå å ñúùàòà.
Çàòîâà âúïðîñà òóê å ïðèíöèïåí. Ìàêðîñè â asm ïðîãðàìè ñå
èçïîëçâàò ìíîãî ÷åñòî. Çàòîâà áè òðÿáâàëî â PICC äà èìà
ìåõàíèçàì ïîíå çà ïðåäåôèíèðàíåòî èì.
Íÿêîè ïîëçâàë ëè å supporta íà CCS. Àêî èì ïèøà çà êîëêî âðåìå ùå ìè îòãîâîðÿò? Äàëè ùå ìè îòãîâîðÿò ïðè ïîëîæåíèå,÷å
èçïîëçâàì íåëèöåíçèðàíà âåðñèÿ íà êîìïèëàòîðà? :?


Чет Апр 07, 2005 6:07 am
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
...


Последна промяна на Съб Яну 28, 2012 11:29 am, променена общо 1 път



Чет Апр 07, 2005 11:57 am
Профил WWW
Мнение 
Äà, íà åäèí ðåä ðàáîòè.

È òîâà ðàáîòè â ðàìêèòå íà #asm #endasm.
#define JNB(FileReg,NumBit,Addr) btfss FileReg,NumBit goto Addr

Îñòàâàò äîñàäíè ïðåðåäàêòèðàíèÿ îò òèïà:
MOVLW D'12' Â MOVLW 0x0C
MOVFW X Â MOVF X,W

Ñ íÿêàêúâ ðåäàêòîð ìîæå ëè äà ñòàíå òîâà ,÷å çà ïðåêîäèðàùà
ïðîãðàìà íå ìè ñå è ïîìèñëÿ äîðè. :(


Чет Апр 07, 2005 3:48 pm
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
...


Чет Апр 07, 2005 7:20 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни