|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:18 am
MPLAB: Как се слагат етикети в макроси за MPASM?
| Автор |
Съобщение |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 MPLAB: Как се слагат етикети в макроси за MPASM?
MPLAB: Как се слагат етикети в макроси за MPASM?
С посления MPLAB съм, като сложа етикети в макроса, при повторно ползвнае на макроса се оплаква:
"Address label duplicated or different in second pass (lbl_Check)"
|
| Вто Сеп 08, 2009 9:50 am |
|
 |
|
rumen65
Ранг: Новодошъл
Регистриран на: Чет Окт 06, 2005 2:06 pm Мнения: 194 Местоположение: Sofia
|
M1 MACRO
LOCAL ET1,ET2
ET1
ET1
|
| Вто Сеп 08, 2009 10:31 am |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Благодаря ти много!
|
| Вто Сеп 08, 2009 11:21 am |
|
 |
|
a_stankov
Ранг: Новодошъл
Регистриран на: Съб Дек 06, 2008 9:22 am Мнения: 119 Местоположение: Пловдив
|
Ето ти един пример за макрос за избор на банка
Последна промяна a_stankov на Сря Сеп 09, 2009 7:32 am, променена общо 1 път
|
| Вто Сеп 08, 2009 7:14 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Има и по-добри примери
|
| Вто Сеп 08, 2009 7:39 pm |
|
 |
|
a_stankov
Ранг: Новодошъл
Регистриран на: Съб Дек 06, 2008 9:22 am Мнения: 119 Местоположение: Пловдив
|
Използвай повече подпрограми а не макроси.Макросите раздуват кода до безобразие а ще видиш
,че това е важно като почне да не ти стига мястото ето ти примера от първия ти пост.
и след тотва си ги викаш с call и няма да имаш проблеми и самия код става по оптимален.
|
| Сря Сеп 09, 2009 7:29 am |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
Благодаря ти за препоръката.
Трябва да те разочаровам - в прекъсвания (какъвто е случея), на процесори с само 8 нива на стек подпрограмите са доста противопоказни.
Освен това, примерчето, което си написал, няма как да стане, защото xBit не е точно определен бит (трябва да се предава маска, а тя, в подпрограмата да се пренася на бита на порта).
Както и да е, ако 1995г имаше поне заченки, че Моторола, Мостек или който и да е друг щяха да произведат малки микроконтролери, никога нямаше да се занимавам с тия гурели на микрочип 
|
| Сря Сеп 09, 2009 8:40 am |
|
 |
|
a_stankov
Ранг: Новодошъл
Регистриран на: Съб Дек 06, 2008 9:22 am Мнения: 119 Местоположение: Пловдив
|
 |  |  |  | NikB написа: Благодаря ти за препоръката. Трябва да те разочаровам - в прекъсвания (какъвто е случея), на процесори с само 8 нива на стек подпрограмите са доста противопоказни. Освен това, примерчето, което си написал, няма как да стане, защото xBit не е точно определен бит (трябва да се предава маска, а тя, в подпрограмата да се пренася на бита на порта). Както и да е, ако 1995г имаше поне заченки, че Моторола, Мостек или който и да е друг щяха да произведат малки микроконтролери, никога нямаше да се занимавам с тия гурели на микрочип  |  |  |  |  |
Ще ти споделя нещо , имаме във фирмата програма която работи и постоянно се препълва стека.Въпреки това програмата си работи безупречно
защото е така написана , че никога не се връщаш от там от където си дошъл , от call излизаш с goto и въпреки всичко работи безупречно
и има хиляди продадени изделия с нея.Въпрос е на малко фантазия при писането - асемблера е чудесен за тази цел.
И при прекъсване невиждам проблем да ползваш подпрограми какво им е толкова противопоказно.
Ако пуснеш програмата през протеус, онзи постоянно пищи за грешка и въпреки това чудо - работи безотказно.
|
| Сря Сеп 09, 2009 11:08 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
гледам и не вярвам на ушите си 
|
| Чет Сеп 10, 2009 12:12 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
|
| Чет Сеп 10, 2009 12:48 am |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Не е писал за какъв пикльо става дума, но май е за 16... с тези 8 нива на стека. То няма и стек, има само FIFO, което пази последните 8 стойности на PC. Ако адреса за връщане не ти трябва, няма проблем да го загубиш, мисля 4е и никаква защита срещу това няма там  Ама от какъв бяс от call ще се връщаш с goto... че и ще се хвалиш с това  Това не го разбирам вече.
|
| Чет Сеп 10, 2009 10:37 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Случвало ми се е и на PC.  Ако прелее в памет, която е заделена за твоя процес, но не се ползва. В случая с микроконтролера е още по-лесно, щото там няма управление на паметта.
|
| Чет Сеп 10, 2009 12:17 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Ами много ясно ,че работи - goto не ползва стека. Не е ясно обаче защо скачаш с call след като може директно и с goto, без да товариш стека?
|
| Чет Сеп 10, 2009 1:06 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Бах' ти програмиста за хиляди изделия..............
Голям фантазьор е - спор няма 
|
| Чет Сеп 10, 2009 1:33 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
м'чи ко толкуз...
|
| Чет Сеп 10, 2009 1:43 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|