Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ну как: код пришедшей команды - это индекс массива указателей на ф-цию. Самое простое дело(+).

Отправлено Quasy 07 мая 2007 г. 17:43
В ответ на: Непонял - это как? Действительно у меня как правило ситема на свитчах. Я всю жизнь считал, что самый что ни на есть прогрессивный подход. отправлено 1111 07 мая 2007 г. 17:36

typedef void ( * Pointers_To_Function ) (void);

// Массив указателей на запускаемые функции
__flash Pointers_To_Function WorkFunction[] =
{
(Pointers_To_Function)0x0000, // 0x00
InitLED, // 0x01
fOpenPort // 0x02
};


А в программе Commd - пришедший код команды. Проверил его чтоб не превышал MAXIMUM - и запускаешь функцию:

(*WorkFunction[ Commd ])();


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru