В PIC16F 8 уровней аппаратного стека. Штанишки уже малы. Кто как обходит это? Писать макросами - нет места. P.S.Преимущества атмела, моторолы и др. просьба не обсуждать
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Igor_O
01 марта 2004 г. 15:21
Составить ответ
|||
Конференция
|||
Архив
Ответы
По-моему, в данном случае есть только ордин выход.
—
Bill
(01.03.2004 18:16, 78 байт)
А вообще, в поллитровую бутылку нелзя налить литр воды.:)
—
Bill
(01.03.2004 18:22,
пустое
)
1933 год кто - не помню. метр воды под давлением 25000ат сжался до 65 см. ;)
—
пьеро
(01.03.2004 18:29,
пустое
)
Тогда может попытаться PIC под таким давлением сжать? Глядишь, и память и добавится :)
—
Bill
(01.03.2004 18:36,
пустое
)
Эт точно - все будут помнить, что его сжимали 25000 атм-ми, а стек как был - так и остался ;О)
—
=mse=
(02.03.2004 10:30,
пустое
)
Возможно поможет ссылка
—
alho
(01.03.2004 18:07, 70 байт)
вроде, мелькала где-то идея (здесь или в микрочиповской конфе) сохранять PC... далее goto на функцию... сразу оговорюсь - сам не применял такое - надобности не было
—
ye
(01.03.2004 17:16,
пустое
)
Дык вроде Си компиляторы это обходят, глянь - как они это делают, и вперёд...
—
A1exD
(01.03.2004 15:51,
пустое
)
Поддерживаю! На Hi-Tech-C это дело автоматом, и легко!
—
SergAnt
(01.03.2004 16:21,
пустое
)
так уж и автоматом?? только лишь для baseline пиков (508-ые, 505-ые, ...)
—
пьеро
(01.03.2004 16:31,
пустое
)
Ответ: А что мешает и на Midrange успешно скомпилить , ну хотя бы такую вложенность (+)
—
SergAnt
(01.03.2004 16:53, 1353 байт)
так в этом случае picc и call'то не сгенерит ;) просто сделает goto на нужную ф-цию.
—
пьеро
(01.03.2004 16:58,
пустое
)
и еще ... так ремарочка
—
пьеро
(01.03.2004 17:04, 525 байт)
А ещё кстати, при такой записи никаких оверлеев по рому никогда не будет?
—
patton
(01.03.2004 17:17, 137 байт)
вроде нет. все ж законно описано.
—
пьеро
(01.03.2004 17:20,
пустое
)
Ответ: Ну про размещение статических переменных в младших адресах , это я ещё с betta версии 7.70 вижу и успешно обхожу (опыт) :) (+)
—
SergAnt
(01.03.2004 17:14, 443 байт)
Кстати я и 3-й от 2-го и 1-го так и не видел примера, чтоб отличались и кстати не в тему, а вот такая бяка спокойно компилится
—
patton
(01.03.2004 17:13, 108 байт)
goto $ тоже спокойно компилится ;)
—
пьеро
(01.03.2004 17:16,
пустое
)
а каким образом ? человек технологию просил, если за счет роста кода то его не устроит.
—
DSN
(01.03.2004 16:27,
пустое
)
Ответ: Да! К сожалению(и само сабой разумеется-ростом кода :( )НО... при полной оптимизации (FULL ) и уровнем 9 Hi-Tech весьма прилично сжиимает код.(+)
—
SergAnt
(01.03.2004 16:36, 395 байт)
а иначе никак нельзя. код вырастет по-любому.
—
пьеро
(01.03.2004 16:34,
пустое
)
Как это можно обойти,кроме как сокращать кол-во вложений.Алгоритм планировать заранее или брать 18е
—
FOXik
(01.03.2004 15:46,
пустое
)
перейти на 18 пики )) там чуть больше стека
—
DSN
(01.03.2004 15:32,
пустое
)
Ответ: Уже все разведено, сделаны пробные (да и не только) образцы.
—
Igor_O
(01.03.2004 15:44, 191 байт)
какой пик? имеются pin-to-pin 16-ые и 18-ые
—
пьеро
(01.03.2004 16:29, 419 байт,
ссылка
)
Ответ: PIC16F628 (макрос не получится) Свободного места байт 8 осталось ;((
—
Igor_O
(01.03.2004 17:06,
пустое
)
Не помню точно 16F88 или 819 тоже 8 уровней но памяти больше для макросов
—
FOXik
(01.03.2004 17:24,
пустое
)
16F87 16F88 - 4k слов. pin-to-pin с 628-ым
—
пьеро
(01.03.2004 17:30,
пустое
)
а Вы хотели чуда? в эти 8 слов не получится впихнуть ничего. ужимайте прогу. переписывайте заново.
—
пьеро
(01.03.2004 17:11,
пустое
)
А недостатки можно? У младших Атмелов та же фигня. Как-то писал программку для ATtiny15 - вместо подпрограмм обходился макросами. Думаю, Вам прийдется делать то же.
—
Сидоргек
(01.03.2004 15:32,
пустое
)
Ответ: Я ж в вопросе сказал - места для макросов нет (ибо макрос сокращает исходник и увеличивает код)
—
Igor_O
(01.03.2004 15:41,
пустое
)
Т.е. можно обсуждать недостатки 16-х пиков?
—
POV
(01.03.2004 15:27,
пустое
)
Ответ: Можно и нужно обсуждать путь/пути решения, а не возможные варианты и баги контроллеров. К сожалению (или радости) девайс уже заточен под F628 пик и переходить куда либо уже поздно, да и нужно ли.
—
Igor_O
(01.03.2004 15:38,
пустое
)
Ответ: а разве нет 18-го в таком же корпусе. Прога на С переносится за полдня.
—
Jedi
(01.03.2004 16:45,
пустое
)
Ответ: 18F1320 :-))
—
lpetrov
(01.03.2004 20:23,
пустое
)
нет 18-ногих 18-ых пиков
—
пьеро
(01.03.2004 17:18,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru