Форум программистов, компьютерный форум CyberForum.ru

задачка на декодирование адреса 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 Доброго времени суток, буду признателен за помощь. Есть готовое решение, но без использования классов, помогите доработать задачу. Составить программу замены всех отрицательных элементов массива на ноль с использованием классов. #include <iostream> #include <stdlib.h> #include <iomanip> #include <ctime> #include <conio.h> #define n 10 подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
09.12.2013, 17:47  [ТС]     задачка на декодирование адреса 3 портов)
вообщем написал такую вот функцию, но она мне честно говоря не нравится из-за расхода памяти на эти '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;
 
Текущее время: 13:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru