|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 4:09 pm
|
Страница 1 от 1
|
[ 11 мнения ] |
|
Âúïðîñ çà CCS è asm macro
| Автор |
Съобщение |
|
boro
|
 Âúïðîñ çà 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 |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами просто си пишеш
На компилатора трябва да му кажеш какво е FADDR, NBIT и пр...: Macro се пише така: . Само да добавя, че няма много смисъл от писане със macro в CCS, същия код ако го напишеш за 16-ka например, компилатора решава сам дали да го постави като макро или да го извика с call (в зависимост от това колко stack space има)... 
|
| Сря Апр 06, 2005 11:23 am |
|
 |
|
boro
|
 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 |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ми ся си такова мамата...напиши го като функция...за друго не се сещам...Няма да ти отнеме кой знае колко време да заместиш всичко с CTRL+R 
|
| Сря Апр 06, 2005 1:22 pm |
|
 |
|
alek
Ранг: Минаващ
Регистриран на: Пет Фев 04, 2005 9:54 am Мнения: 50 Местоположение: Null
|
Компилирай асемблерския код с макросите в MPLAB и вземи листинговия файл - от там си копирай подробния асемблерски код и го сложи в CCS.
|
| Сря Апр 06, 2005 3:31 pm |
|
 |
|
boro
|
 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
}
Íî íåìîãà äà ãî ïîäêàðàì. 
|
| Сря Апр 06, 2005 4:47 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами напиши го:
.
За листинга имаше един директив #LIST, с който всичко след него се листва...погледни в хелпа че съм го забравил как беше.
|
| Сря Апр 06, 2005 4:50 pm |
|
 |
|
boro
|
 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 |
|
 |
|
boro
|
Äà, íà åäèí ðåä ðàáîòè.
È òîâà ðàáîòè â ðàìêèòå íà #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 |
|
|
|
Страница 1 от 1
|
[ 11 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 10 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|