Форум программистов, компьютерный форум, киберфорум
Наши страницы

задачка на декодирование адреса 3 портов) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отредактировать заданное предложение, удаляя из него те слова, которые встречаются в предложении заданное число раз http://www.cyberforum.ru/cpp-beginners/thread1034207.html
Отредактировать заданное предложение, удаляя из него те слова, которые встречаются в предложении заданное число раз.
C++ Сформаировать вектор из номеров строк матрицы Вот задача Для каждой из заданных прямоугольных матриц размера N*M сформировать вектор из номеров тех строк, которые не имеют нулевых элементов . Результат вывести на экран . ........Не знаю как... http://www.cyberforum.ru/cpp-beginners/thread1034204.html
C++ задача про графы
Написать программу отыскания кратчайших путей между всеми парами вершин ориентированного графа по его списковому представлению
Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а C++
Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а. Помогите пожалуйста сделать. Заранее спасибо
C++ Арифметическая прогрессия http://www.cyberforum.ru/cpp-beginners/thread1034178.html
Помогите, пожалуйста, решить задачку. Дан бинарный файл, содержащий числа а1, b1, a2, b2... . Каждая пара чисел a и b определяет числитель и знаменатель натуральной дроби a/b. Проверить, образуют...
C++ Работа с классами. Замена отрицательных элементов на 0 Доброго времени суток, буду признателен за помощь. Есть готовое решение, но без использования классов, помогите доработать задачу. Составить программу замены всех отрицательных элементов массива... подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,039
09.12.2013, 17:47  [ТС]
вообщем написал такую вот функцию, но она мне честно говоря не нравится из-за расхода памяти на эти 'G' 'U' 'P', но лучше не придумал пока что, потестил на компе рработает, на железяке ещё не пробовал....мб кому будет интересно такую вот задачку решить, а то тут обычно всякие "Помогите найти минимальный элемент массива a[10]"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void getAdress(unsigned char *adress) 
{
unsigned char temp1=(P1IN&pin1); // это побитное считывание для pin1, т.е. запись текущего состояния
unsigned char temp2=(P1IN&pin2); // аналогично
unsigned char temp3=(P1IN&pin3); // аналогично
char *GA="UUU"; // начальное состояние
char *a[]={"GGG","GGU","GUG","GUU","UGG","UGU","UGG","UUP","UPU","UPP","PUU","PUP","PPU"}; // комбинации, индекс соотв адресу
P1OUT|=PAOUT4; /* здесь мы инициализируем выходной сигнал лог.0(или 1 не помню тутне суть важно) (..он через резистор посажен на все pin1,2,3 , и если мы меняем его, то сигнал меняется на pins в зав от их лог состояния, если не меняется для обоих переключений, то там unconnect pin*/
    if (temp1!=(P1IN&pin1)) // сравниваем
    GA[0]='P';
    if (temp2!=(P1IN&pin2))
    GA[1]='P';
    if (temp3!=(P1IN&pin3))
    GA[2]='P';
temp1=(P1IN&pin1); //здесь мы опять сохраняем текущие состояния пинов для след сравнения
temp2=(P1IN&pin2);
temp3=(P1IN&pin3);
P1OUT&=PAOUT4; // меняем выходной пин и опять проверяем все на изменение лог состояния
    if (temp1!=(P1IN&pin1))
    GA[0]='G';
    if (temp2!=(P1IN&pin2))
    GA[1]='G';
    if (temp3!=(P1IN&pin3))
    GA[2]='G';
int i;
  for (i=1;i<=12;i++)
  {
      if (!strcmp(GA,a[i]))
      *adress=0x70+i*2; // так высчитывается адресс через индекс
  }
}
вообщем буду очень благодарен, если кто-нить придумает решение более оригинальное

Добавлено через 1 час 34 минуты
Цитата Сообщение от dzrkot Посмотреть сообщение
P1OUT&=PAOUT4;
должно быть
C++
1
P1OUT&=~PAOUT4; // или P1OUT^=PAOUT4;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru