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

 
 
> Как "красиво" написать этот кусочек?, Хочется писать красиво...
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
Ответов
Сергей Борщ
сообщение Mar 22 2007, 22:09
Сообщение #2


Гуру
******

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



Цитата(Pyku_He_oTTyda @ Mar 22 2007, 20:44) *
Вот такой кусочек кода, как написать его покрасивее?
Смотря что подразумевать под "красивее". можно так:
Код
#define    KEY_UP        (1<<0)
#define    KEY_DOWN    (1<<1)
#define    KEY_LEFT    (1<<2)
#define    KEY_RIGHT    (1<<3)
#define    KEY_MODE    (1<<4)
#define    KEY_SET        (1<<5)


void read_key()
{
   uint8_t Port_Val = PINA;
   if(!(Port_Val & KEY_UP))
       up_press = 1;
   else
       up_press = 0;

  .......
   if( !(Port_Val & (KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT | KEY_SET | KEY_MODE)))
       key_press = 1;
   else
       key_press = 0;
}
А можно так:
Код
#define    KEY_UP        (1<<0)
#define    KEY_DOWN    (1<<1)
#define    KEY_LEFT    (1<<2)
#define    KEY_RIGHT    (1<<3)
#define    KEY_MODE    (1<<4)
#define    KEY_SET        (1<<5)

enum keypressed_t {RELEASED, UP, DOWN, LEFT, RIGHT, MODE, SET};
keypressed_t Key;
void read_key()
{
   uint8_t Port_Val = PINA;
   if(!(Port_Val & KEY_UP))
       Key = UP;
   else
       if(!(Port_Val & KEY_DOWN))
           Key = DOWN;
      .......

                 else
                    Key = RELEASED;
}


void check_key()
{
    switch(Key)
    {
      case UP:
           .....
           break;
      case DOWN:
           .....
           break;
      case RELEASED:
      default:
           .....
           break;
    }
}


--------------------
На любой вопрос даю любой ответ
"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, 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
- - SasaVitebsk   А если так??? Код#define CNT_KEY 6 // Чи...   Mar 23 2007, 00:30
|- - Сергей Борщ   Цитата(SasaVitebsk @ Mar 22 2007, 23:30) ...   Mar 23 2007, 14:34
|- - _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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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