Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Вопросы и ответы по программированию на C для микроконтроллеров PIC.

Вопрос   Могу я использовать inline code для функции?

Ответ  Ответ: Наверх [Вернуться в категорию "Вопросы и ответы по программированию на C для микроконтроллеров PIC."]
Для многих компиляторов выражение inline при объявлении функции означает, что каждый раз при вызове этой функции будет подставляться ее код. Это уменьшает количество переходов и экономит стек , но увеличивает размер кода. Hi-Tech C не поддерживает 'inline'.
Однако, если нельзя, но очень хочется, то можно. Для этого используется #define. Если текст планируемой "inline" функции не помещается в одну строку, то используйте знак '' после каждой строки. Для примера:

#define DelayUs(x) { unsigned char _dcnt;
_dcnt = x;
while(--_dcnt != 0)
{asm ("nop");
continue; }}

Каждый раз при вызове функции DelayUs (0x55) будет вставляться непосредственно ее код:

:DelayUs (0x55);
0007C5 MOVLW 0x55
0007C6 MOVWF _dcnt
0007C7 NOP
0007C8 DECFSZ _dcnt, 0x1
0007C9 GOTO 0x7c7

Достаточно много примеров использования #define для вставки кода имеется в h-файла компилятора.

[Вопросы и ответы по программированию на C для микроконтроллеров PIC.]

Новости
[06/02/2019] Конференция в МГТУ им. Баумана «Технологии разработки и отладки сложных технических систем» 2019
[09/05/2018] Грандиозная майская распродажа на Gearbest!
[16/05/2017] С 15 по 17 мая в магазине Gearbest проходит грандиозный флэшсейл
[10/05/2017] Так что же такое Спиннер?
[05/12/2016] Новый Год и Рождество с GearBest!
Читать все новости >>
Каталог схем
PDA - интерфейсы и схемы Автозвук Автомобиль Аудио Безопасность Бытовая электроника Видео Видеокамеры Высоковольтные Генераторы Игры, развлечения Измерения Интерфейсы Коммутация Компьютер Медицина Моделирование/ Роботы Музыка Передатчики Питание Получение и накопление данных Предусилители Радио Разное Ремонт Ретро Свет/Лазер/ Cветодиоды/IR Сети Солнечная энергия Сотовая связь ТВ-Мониторы Телефония Управление двигателями Фильтры Цифровые/ Микроконтроллеры Electronic circuits Datasheets Каталог схем Принципиальные схемы
Мicrocontrollers
Drivers for LED dispays Data Logger for iButton LCD-module with MCS-51 Thermometers Dallas Semiconductor Work with EEPROM 24LCxx MSP430 with Flash-memory ATmega169 and AVR-Baterfly CAN interface USB interface
Избранные схемы
Arduino Аудио В Вашу мастерскую Видео Для автомобиля Для дома и быта Для начинающих Зарядные устройства Измерительные приборы Источники питания Компьютер Медицина и здоровье Микроконтроллеры Музыкантам Опасные, но интересные конструкции Охранные устройства Программаторы Радио и связь Радиоуправление моделями Световые эффекты Связь по проводам и не только... Телевидение Телефония Узлы цифровой электроники Фототехника Шпионская техника
Пользователи
Создано аккаунтов:
Сегодня: 0
Вчера: 0
Всего: 146141

Статистика:

 © 2003—2024 «Электронный портал»Обр@тная связь