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

 
 
> Как "красиво" написать этот кусочек?, Хочется писать красиво...
Pyku_He_oTTyda
сообщение Mar 22 2007, 21:44
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Вот такой кусочек кода, как написать его покрасивее?
Заранее благодарен за внимание!
Код
void read_key(void)
{
if(PINA==0xFE)
{
up_press=1;
}
else
{
up_press=0;
};

if(PINA==0xFD)
{
down_press=1;
}
else
{
down_press=0;
};

if(PINA==0xFB)
{
left_press=1;
}
else
{
left_press=0;
};

if(PINA==0xF7)
{
right_press=1;
}
else
{
right_press=0;
};

if(PINA==0xEF)
{
mode_press=1;
}
else
{
mode_press=0;
};

if(PINA==0xDF)
{
set_press=1;
}
else
{
set_press=0;
};
}


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Mar 23 2007, 00:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А если так???

Код
#define                CNT_KEY        6                        // Число кнопок
__no_init    struct
{
uint8_t            Up            : 1,                    // Вверх
                            Down        : 1,                    // Вниз
                            Left        : 1,                    // Влево
                            Right        : 1,                    // Вправо
                            Mode        : 1,                    // Мода
                            Set            : 1;                    // Установить
} Key;



void read_key()
{
uint8_t            i,j,k;


Key = ~PINA;
i = ~Key;
k=0;
for(j=0;j<CNT_KEY;j++) {k += i & 1; i >>= 1};
if(k>1) Key = 0;
}


// А анализировать так

if(Key.Up)
{
....
}
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 23 2007, 14:34
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(SasaVitebsk @ Mar 22 2007, 23:30) *
А если так???
Код
Key = ~PINA;
i = ~Key;
Присваивание целого структуре и наоборот недопустимо. Тогда уж
Код
union
{
    struct
   {
       uint8_t            Up            : 1,                    // Вверх
       uint8_t            Down        : 1,                    // Вниз
       ..........
    },
    uint8_t raw;
} Key;

Key.raw = ~PINA;
i = ~Key.raw;


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pyku_He_oTTyda   Как "красиво" написать этот кусочек?   Mar 22 2007, 21:44
- - _sR_   Цитата(Pyku_He_oTTyda @ Mar 22 2007, 21:4...   Mar 22 2007, 22:06
- - singlskv   Цитата(Pyku_He_oTTyda @ Mar 22 2007, 21:4...   Mar 22 2007, 22:08
- - Сергей Борщ   Цитата(Pyku_He_oTTyda @ Mar 22 2007, 20:4...   Mar 22 2007, 22:09
- - Pyku_He_oTTyda   Спасибо! Несколько кнопок не могут быть нажаты...   Mar 22 2007, 22:26
|- - Сергей Борщ   Цитата(Pyku_He_oTTyda @ Mar 22 2007, 21:2...   Mar 22 2007, 22:37
||- - singlskv   Цитата(Сергей Борщ @ Mar 22 2007, 22:37) ...   Mar 22 2007, 22:48
||- - Сергей Борщ   Цитата(singlskv @ Mar 22 2007, 21:48) так...   Mar 22 2007, 22:57
||- - singlskv   Цитата(Сергей Борщ @ Mar 22 2007, 22:57) ...   Mar 22 2007, 23:41
|- - singlskv   А значения up_press, down_press , ..... нельзя объ...   Mar 22 2007, 22:40
- - Pyku_He_oTTyda   Цитатато есть если несколько нажато, то считаем чт...   Mar 22 2007, 22:44
|- - _sR_   Цитата(Сергей Борщ @ Mar 23 2007, 14:34) ...   Mar 23 2007, 21:19
|- - SasaVitebsk   Цитата(_sR_ @ Mar 23 2007, 22:19) поддерж...   Mar 24 2007, 15:54
|- - _sR_   Цитата(SasaVitebsk @ Mar 24 2007, 15:54) ...   Mar 25 2007, 19:54
- - SasaVitebsk   Ну ты у нас с первого взгляда .... Я бы ч/з ...   Mar 23 2007, 20:57
- - smk   switch () { case : break; defa...   Mar 23 2007, 22:30
|- - kamedi_clab   Цитата(smk @ Mar 23 2007, 22:30) switch (...   Mar 23 2007, 23:44
- - Pyku_He_oTTyda   Спасибо всем Закончу прогу, перепишу кусочек, восп...   Mar 24 2007, 09:58
- - kamedi_clab   Надеюсь покажешь как кусочек реализован ?   Mar 24 2007, 10:11
- - Pyku_He_oTTyda   Покажу   Mar 24 2007, 21:21
- - proba   Цитата(Pyku_He_oTTyda @ Mar 22 2007, 21:4...   Mar 25 2007, 10:46


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

 


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


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