| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| MPLAB: Как се слагат етикети в макроси за MPASM? http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7111 |
Страница 1 от 2 |
| Автор: | NikB [ Вто Сеп 08, 2009 9:50 am ] | |||||||||
| Заглавие: | MPLAB: Как се слагат етикети в макроси за MPASM? | |||||||||
MPLAB: Как се слагат етикети в макроси за MPASM? С посления MPLAB съм, като сложа етикети в макроса, при повторно ползвнае на макроса се оплаква: "Address label duplicated or different in second pass (lbl_Check)"
|
||||||||||
| Автор: | rumen65 [ Вто Сеп 08, 2009 10:31 am ] |
| Заглавие: | |
M1 MACRO LOCAL ET1,ET2 ET1 ET1 |
|
| Автор: | NikB [ Вто Сеп 08, 2009 11:21 am ] |
| Заглавие: | |
Благодаря ти много! |
|
| Автор: | a_stankov [ Вто Сеп 08, 2009 7:14 pm ] | |||||||||
| Заглавие: | ||||||||||
Ето ти един пример за макрос за избор на банка
|
||||||||||
| Автор: | NikB [ Вто Сеп 08, 2009 7:39 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Има и по-добри примери
|
|||||||||||||||||||
| Автор: | a_stankov [ Сря Сеп 09, 2009 7:29 am ] | |||||||||
| Заглавие: | ||||||||||
Използвай повече подпрограми а не макроси.Макросите раздуват кода до безобразие а ще видиш ,че това е важно като почне да не ти стига мястото ето ти примера от първия ти пост.
и след тотва си ги викаш с call и няма да имаш проблеми и самия код става по оптимален. |
||||||||||
| Автор: | NikB [ Сря Сеп 09, 2009 8:40 am ] | |||||||||
| Заглавие: | ||||||||||
Благодаря ти за препоръката. Трябва да те разочаровам - в прекъсвания (какъвто е случея), на процесори с само 8 нива на стек подпрограмите са доста противопоказни. Освен това, примерчето, което си написал, няма как да стане, защото xBit не е точно определен бит (трябва да се предава маска, а тя, в подпрограмата да се пренася на бита на порта). Както и да е, ако 1995г имаше поне заченки, че Моторола, Мостек или който и да е друг щяха да произведат малки микроконтролери, никога нямаше да се занимавам с тия гурели на микрочип |
||||||||||
| Автор: | a_stankov [ Сря Сеп 09, 2009 11:08 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Ще ти споделя нещо , имаме във фирмата програма която работи и постоянно се препълва стека.Въпреки това програмата си работи безупречно защото е така написана , че никога не се връщаш от там от където си дошъл , от call излизаш с goto и въпреки всичко работи безупречно и има хиляди продадени изделия с нея.Въпрос е на малко фантазия при писането - асемблера е чудесен за тази цел. И при прекъсване невиждам проблем да ползваш подпрограми какво им е толкова противопоказно. Ако пуснеш програмата през протеус, онзи постоянно пищи за грешка и въпреки това чудо - работи безотказно. |
|||||||||||||||||||
| Автор: | miro_atc [ Чет Сеп 10, 2009 12:12 am ] | |||||||||
| Заглавие: | ||||||||||
гледам и не вярвам на ушите си |
||||||||||
| Автор: | bateAz [ Чет Сеп 10, 2009 12:48 am ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
T'ва и в Холувудските филми го нема |
|||||||||||||||||||
| Автор: | setoy [ Чет Сеп 10, 2009 10:37 am ] |
| Заглавие: | |
Не е писал за какъв пикльо става дума, но май е за 16... с тези 8 нива на стека. То няма и стек, има само FIFO, което пази последните 8 стойности на PC. Ако адреса за връщане не ти трябва, няма проблем да го загубиш, мисля 4е и никаква защита срещу това няма там |
|
| Автор: | Реконструктор [ Чет Сеп 10, 2009 12:17 pm ] | |||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||
Случвало ми се е и на PC. |
||||||||||||||||||||||||||||
| Автор: | ji4ka [ Чет Сеп 10, 2009 1:06 pm ] | |||||||||
| Заглавие: | ||||||||||
Ами много ясно ,че работи - goto не ползва стека. Не е ясно обаче защо скачаш с call след като може директно и с goto, без да товариш стека? |
||||||||||
| Автор: | Wise [ Чет Сеп 10, 2009 1:33 pm ] |
| Заглавие: | |
Бах' ти програмиста за хиляди изделия.............. Голям фантазьор е - спор няма |
|
| Автор: | ДедоБоре [ Чет Сеп 10, 2009 1:43 pm ] |
| Заглавие: | |
м'чи ко толкуз... |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|