Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
создать необходимый набор низкоуровневых функций, просто устанавливающих соотв ноки в определенное состояние:
near void SetClk1(void);
near void SetClk2(void);
near void ClrClk1(void);
near void SetDataAll(void);
near void SetCS1(void);
и т.д. Затем описываем структуру с набором указателей на нужные функции:
typedef void (*FUNCTIONPTR)(void);
typedef struct
{
FUNCTIONPTR* pSetClk;
FUNCTIONPTR* pClrClk;
...
}
MYSTRUCT;
чтобы оно быстрее потом работало, размер структуры лучше выровнять до степени 2 (4, 8, 16, 32 ... байта, просто добиваем полями Reserved, память жалеть не надо)
создаем массив этих структур:
static const __flash MYSTRUCT JmpMap[] =
{
{&SetClk1, &ClrClk1, &SetDataAll, ...},
{&SetClk2, &ClrClk2, &SetDataAll, ...},
{...}
};
перечислением описываем наши "девайсы":
enum
{
DEV_1 = 0,
DEV_2,
DEV_3 ...
}
Потом в функцию, которая формирует последовательность ногодрыга, передаешь индекс массива DEV_1, DEV_2 и т.д.
Составить ответ | Вернуться на конференцию.
Ответы