[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
В программе есть несколько подключаемых модулей, количество которых постоянно изменяется в процессе отладки/доработки. В одном из файлов собираются однотипные действия, чтобы потом использовать одной строкой (типа SYSTEM_INIT(), и все модули будут проинициализированы).
Все включаемые вызовы - тоже inline, некоторые из них реализованы как пустые.
#include "Leds.h"
#include "Timer.h"
#include "SPI.h"
#include "UART.h"inline void SYSTEM_INIT(){ // начальная инициализация
Leds::Init();
Timer::Init();
SPI::Init();
UART::Init();
}
inline void SYSTEM_RUN(){ // запуск работы
Leds::Run();
Timer::Run();
SPI::Run();
UART::Run();
}
inline void SYSTEM_TICK(){ // системные тики ~15 мс
Leds::SysTick();
Timer::SysTick();
SPI::SysTick();
UART::SysTick();
}
inline void SYSTEM_TICK_100MS(){ // системные тики =100 мс
Leds::Tick100ms();
Timer::Tick100ms();
SPI::Tick100ms();
UART::Tick100ms();
}
Хотелось бы список модулей (Leds,Timer,SPI,UART) записывать только один раз во избежание несогласованности, и чтобы он потом развертывался в текст выше (или нечто подобное, но обязательно статически во время компиляции, оверхед динамических вызовов в процессе работы с использованием RTTI недопустим). Как это сделать на С++ (для конкретности - в Tasking C++ для C166)?
E-mail: info@telesys.ru