|
Как "красиво" написать этот кусочек?, Хочется писать красиво... |
|
|
|
Mar 22 2007, 21:44
|

Профессионал
    
Группа: Свой
Сообщений: 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; }; }
--------------------
Андрей Смирнов
|
|
|
|
|
 |
Ответов
|
Mar 23 2007, 00:30
|
Гуру
     
Группа: Свой
Сообщений: 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) { .... }
|
|
|
|
|
Mar 23 2007, 14:34
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
Сообщений в этой теме
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|