Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: макрос
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Евгений Германович
Не подскажет ли кто.Как создать библиотеку макросов и ,если это воэможно.как туда запихивать и ссылаться .мплаб 752
upc2
Вопрос вероятно озадачил всех.Не указан ни язык, ни компилятор , ни в какую библиотеку пихать.
Ладно, рискну вляпаться первым.Вот пример макроса.Обычная функция , но смотрите как обьявлена.
Обычно их собирают в заголовочных файлах(.h),

*****************************************************************************
* Macro: void mInitializeUSBDriver(void)
*
* PreCondition: None
*
* Input: None
*
* Output: None
*
* Side Effects: None
*
* Overview: Configures the USB module, definition of UCFG_VAL can be
* found in autofiles\usbcfg.h
*
* This register determines: USB Speed, On-chip pull-up
* resistor selection, On-chip tranceiver selection, bus
* eye pattern generation mode, Ping-pong buffering mode
* selection.
*
* Note: None
*****************************************************************************/
#define mInitializeUSBDriver() {UCFG = UCFG_VAL;
usb_device_state = DETACHED_STATE;
usb_stat._byte = 0x00;
usb_active_cfg = 0x00;
}
Евгений Германович
меня мой вопрос тоже удивил.Уточняю язык ассемблер мплабовский,а про библиотеку так её ещё создать надо. И ещё один вопрос как создать константы доступые во всех файлах проекта? все про мплаб и ассемблер
vanner
Объяви константы в файле (например, const.inc) и подключай его во всех файлах проекта.
_Pasha
Цитата(Евгений Германович @ Feb 9 2008, 20:10) *
меня мой вопрос тоже удивил.Уточняю язык ассемблер мплабовский,а про библиотеку так её ещё создать надо. И ещё один вопрос как создать константы доступые во всех файлах проекта? все про мплаб и ассемблер

И вышеназванные константы, и макросы группируете по каким-либо общим признакам, и подключаете созданные файлы в программу директивой, например #include "filename.inc".
Интересно, какие цели создания библиотеки:
- метаязык, фиксированный набор псевдокоманд для всех семейств пиков;
- автоматическая генерация текстов программ или формирование данных;
-другие варианты

???

P.S. Недавно попробывал паскаль-компилятор PMP . PIC18 в нем пока нет, но в целом впечаление - обалденное. Как вариант: Паскаль - не С, осваивается практически мгновенно. Вариантов напороть ошибок - минимум из-за повышенной читабельности программного текста. Может Вам в ту сторону глянуть?
Евгений Германович
Цитата(vanner @ Feb 11 2008, 09:59) *
Объяви константы в файле (например, const.inc) и подключай его во всех файлах проекта.

ПОЧЕМУ INC ,я пришел к подобной мысли но расширение ставил асм.Вроде получилось,но я столкнулся с проблемой программы написанные под мплаб 7.20 наотрез отказываются транслироваться в 7.52(дернуло это г.. поставить).

Цитата(_Pasha @ Feb 11 2008, 15:42) *
И вышеназванные константы, и макросы группируете по каким-либо общим признакам, и подключаете созданные файлы в программу директивой, например #include "filename.inc".
Интересно, какие цели создания библиотеки:
- метаязык, фиксированный набор псевдокоманд для всех семейств пиков;
- автоматическая генерация текстов программ или формирование данных;
-другие варианты

???

P.S. Недавно попробывал паскаль-компилятор PMP . PIC18 в нем пока нет, но в целом впечаление - обалденное. Как вариант: Паскаль - не С, осваивается практически мгновенно. Вариантов напороть ошибок - минимум из-за повышенной читабельности программного текста. Может Вам в ту сторону глянуть?

Все проще есть 3 программы выполняющие одно и тоже,но 2 программы различаются типом процессора и одним файлом.3я программа написана на другую тактовую частоту.Меня достало вносить изменения во все программы.И вам вопрос почему инк расширение у меня асм проглотило.правда код получить не удалось
_Pasha
Цитата(Евгений Германович @ Feb 11 2008, 18:57) *
И вам вопрос почему инк расширение у меня асм проглотило.правда код получить не удалось

Так не выйдет. Телепатируйте в студию то, что можете показать smile.gif
ЗЫ
Вспомнил, был недоволен v7.50 даже умудрился его завесить smile.gif
Проблема решилась, когда внимательно изучил template. Там есть под линкер и под безлинковый вариант.
После этого получалось. Конкретно,что делал, не помню. Но копаться надо именно там.
Евгений Германович
Цитата(_Pasha @ Feb 11 2008, 19:09) *
Так не выйдет. Телепатируйте в студию то, что можете показать smile.gif
ЗЫ
Вспомнил, был недоволен v7.50 даже умудрился его завесить smile.gif
Проблема решилась, когда внимательно изучил template. Там есть под линкер и под безлинковый вариант.
После этого получалось. Конкретно,что делал, не помню. Но копаться надо именно там.

template. -это что и где?Перевел,я смотрел шаблоны,вроде делал также,тексты попробую но не сегодня.А почему инк??????????
_Pasha
Цитата(Евгений Германович @ Feb 11 2008, 19:32) *
А почему инк??????????

Да не кричите Вы... Просто,так сложилось *.inc = include , т.е. включаемый файл.
Там еще были скрипты линкера, их тоже надо добавлять в проект в любом случае.
vanner
Цитата(Евгений Германович @ Feb 11 2008, 18:57) *
ПОЧЕМУ INC ,я пришел к подобной мысли но расширение ставил асм.Вроде получилось,но я столкнулся с проблемой программы написанные под мплаб 7.20 наотрез отказываются транслироваться в 7.52(дернуло это г.. поставить).


По поводу inc разберитесь со структурой проекта, асм тоже можно инклюдить, но это ИМХО не совсем корректно. Именно в inc файлах принято объявлять константы, описывать глобальные переменные и внешние(extern) функции. Принцип такой же как и *.h и *.c файлы.
MPLAB уже 8.01 давно.
Евгений Германович
Цитата(vanner @ Feb 12 2008, 09:46) *
По поводу inc разберитесь со структурой проекта, асм тоже можно инклюдить, но это ИМХО не совсем корректно. Именно в inc файлах принято объявлять константы, описывать глобальные переменные и внешние(extern) функции. Принцип такой же как и *.h и *.c файлы.
MPLAB уже 8.01 давно.

Я вроде все сделал,но мне не понравилось гигантское кол-во ссобщений под №306 ,пробовал и Pagesel
и без оного все равно не убирается,речь об однофайловом проекте.Про 8.1 меня 7.52 задолбало.
А основная проблема была в том что 7.52 хекс файл делал втихаря,а посмотреть результат я не догадался smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.