|
|
  |
макрос |
|
|
|
Feb 6 2008, 05:40
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Вопрос вероятно озадачил всех.Не указан ни язык, ни компилятор , ни в какую библиотеку пихать. Ладно, рискну вляпаться первым.Вот пример макроса.Обычная функция , но смотрите как обьявлена. Обычно их собирают в заголовочных файлах(.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; }
|
|
|
|
|
Feb 11 2008, 06:59
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 23-10-05
Пользователь №: 10 016

|
Объяви константы в файле (например, const.inc) и подключай его во всех файлах проекта.
|
|
|
|
|
Feb 11 2008, 12:42
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Евгений Германович @ Feb 9 2008, 20:10)  меня мой вопрос тоже удивил.Уточняю язык ассемблер мплабовский,а про библиотеку так её ещё создать надо. И ещё один вопрос как создать константы доступые во всех файлах проекта? все про мплаб и ассемблер И вышеназванные константы, и макросы группируете по каким-либо общим признакам, и подключаете созданные файлы в программу директивой, например #include "filename.inc". Интересно, какие цели создания библиотеки: - метаязык, фиксированный набор псевдокоманд для всех семейств пиков; - автоматическая генерация текстов программ или формирование данных; -другие варианты ??? P.S. Недавно попробывал паскаль-компилятор PMP . PIC18 в нем пока нет, но в целом впечаление - обалденное. Как вариант: Паскаль - не С, осваивается практически мгновенно. Вариантов напороть ошибок - минимум из-за повышенной читабельности программного текста. Может Вам в ту сторону глянуть?
Сообщение отредактировал _Pasha - Feb 11 2008, 12:44
|
|
|
|
|
Feb 11 2008, 15:57
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Цитата(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я программа написана на другую тактовую частоту.Меня достало вносить изменения во все программы.И вам вопрос почему инк расширение у меня асм проглотило.правда код получить не удалось
|
|
|
|
|
Feb 11 2008, 16:09
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Евгений Германович @ Feb 11 2008, 18:57)  И вам вопрос почему инк расширение у меня асм проглотило.правда код получить не удалось Так не выйдет. Телепатируйте в студию то, что можете показать  ЗЫ Вспомнил, был недоволен v7.50 даже умудрился его завесить  Проблема решилась, когда внимательно изучил template. Там есть под линкер и под безлинковый вариант. После этого получалось. Конкретно,что делал, не помню. Но копаться надо именно там.
Сообщение отредактировал _Pasha - Feb 11 2008, 16:18
|
|
|
|
|
Feb 11 2008, 16:32
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Цитата(_Pasha @ Feb 11 2008, 19:09)  Так не выйдет. Телепатируйте в студию то, что можете показать  ЗЫ Вспомнил, был недоволен v7.50 даже умудрился его завесить  Проблема решилась, когда внимательно изучил template. Там есть под линкер и под безлинковый вариант. После этого получалось. Конкретно,что делал, не помню. Но копаться надо именно там. template. -это что и где?Перевел,я смотрел шаблоны,вроде делал также,тексты попробую но не сегодня.А почему инк??????????
|
|
|
|
|
Feb 12 2008, 06:46
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 23-10-05
Пользователь №: 10 016

|
Цитата(Евгений Германович @ Feb 11 2008, 18:57)  ПОЧЕМУ INC ,я пришел к подобной мысли но расширение ставил асм.Вроде получилось,но я столкнулся с проблемой программы написанные под мплаб 7.20 наотрез отказываются транслироваться в 7.52(дернуло это г.. поставить). По поводу inc разберитесь со структурой проекта, асм тоже можно инклюдить, но это ИМХО не совсем корректно. Именно в inc файлах принято объявлять константы, описывать глобальные переменные и внешние(extern) функции. Принцип такой же как и *.h и *.c файлы. MPLAB уже 8.01 давно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|