реклама на сайте
подробности

 
 
> Как использовать разные лапы в одной функции
Andrey_M
сообщение Nov 20 2012, 18:39
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 11-03-05
Из: Подмосковье
Пользователь №: 3 260



Доброго времени суток.
Господа подскажите как лучше писать код когда одна и та же функция должна
использовать разные лапы процессора?

Например:
--------------------------------------
#define q0 RA0
#define q1 RA1
#define out0 TRISA0
#define out1 TRISA1
--------------------------------------------------------------------------
void Riad (datch)
{
q0=q1=1;
out0=out1=0;
switch (datch)
{
case 0: q0=0; out0=1; white(15); out0=0; break;
case 1: q1=0; out1=1; white(15); out1=0; break;
}
}
--------------------------------------------------------------------------
Не судите строго код только для пояснения вопроса. Получается пошло писать
кучу абсолютно одинаковых CASE отличающихся только тем какая лапа

процессора будет дрыгаться. Подскажите пожалуйста как это делается правильно.

Заранее спасибо всем откликнувшимся.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrey_M
сообщение Nov 21 2012, 04:10
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 11-03-05
Из: Подмосковье
Пользователь №: 3 260



Прошу прощения МК использую PIC16F886 компилятор HiTech.
Порт в данном примере PORTA выводы 0 и 1. В функцию передаю номер вывода которым надо пошевелить.
Движения одинаковые переключения вход-выход и установить 0 или 1.
не могу нащупать как с помощью #define переопределить ногу в зависимости от переданного функции номера.
Интересует принцип как это сделать и в случае с использованием одного порта и разных.

Спасибо откликнувшимся.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 21 2012, 05:52
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Andrey_M @ Nov 21 2012, 08:10) *
не могу нащупать как с помощью #define переопределить ногу в зависимости от переданного функции номера.

а НИКАК. #define это директива компиляции, в рантайме все уже жестко определено и "зацементировано".
Чем case не нравится?
Вполне стандартное решение.
Альтернатива - передавать вместо номера непосредственно "ногу", то есть маску, а в функции накладывать, но это как раз изврат.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016