Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 79
1

Удержание кнопки

14.03.2018, 19:39. Просмотров 1344. Ответов 1
Метки нет (Все метки)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(14,15,16,17,18,19); 
 
long num1,num2 ;
double total;
char operation,button;
 
const byte ROWS = 4;
const byte COLS = 4;
 
char keys[ROWS][COLS] = {
  {'1','2','3','+'},
  {'4','5','6','-'},
  {'7','8','9','*'},
  {'C','0','=','/'}
};
byte rowPins[ROWS] = {9,8,7,6}; 
byte colPins[COLS] = {5,4,3,2};     
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
 
 
void setup() 
{
  
  lcd.begin(16,2);
  Serial.begin(9600);
 
 
}
 
void loop()
{
  
 
 
  while(1)
  {
     
        
    button = customKeypad.getKey(); 
    if (button=='C') 
    {
      num1=0;
      num2=0;
      total=0;
      operation=0;
      lcd.clear();
    }
        
    if (button >='0' && button <='9') 
    {
      num1 = num1*10 + (button -'0'); 
     
      lcd.setCursor(0,0); 
      lcd.print(num1);    
    }
    
    if (num1 !=0 && (button=='-' || button=='+' || button=='*' || button=='/')) 
    {
     
      operation = button;  
      lcd.setCursor(0,1);  
      lcd.print(operation); 
      break;
    }
 
  }
    
  while(1) 
  {
    
    if (button =='C')
      break;
    button = customKeypad.getKey();
    if (button=='C') 
    {
      num1=0;
      num2=0;
      total=0;
      operation=0;
      lcd.clear();
      break;
    }
    if (button >='0' && button <='9') 
    {
      num2 = num2*10 + (button -'0');
      lcd.setCursor(1,1);
      lcd.print(num2);
    }
    if (button == '=' && num2 !=0)
    {       
      domath();             
      break;  
    }
  }
    
  while(1) 
  {
        
    if (button =='C')
      break;
 
    button = customKeypad.getKey();
    if (button =='C') 
    {
      lcd.clear();
      lcd.setCursor(0,0);
      num1=0;
      num2=0;
      total=0;
      operation=0;
      break;
    }
  }
 
}
 
 
void domath()
{
  switch(operation)
  {
    case '+': 
      total = num1+num2;
      break;
      
    case '-': 
      total = num1-num2;
      break;
      
    case '/': 
      total = (float)num1/(float)num2;
      break;
      
    case '*': 
      total = num1*num2;
      break;
          
  }
    
  lcd.setCursor(0,1);
  lcd.print('=');
  lcd.setCursor(1,1);
  lcd.print(total);   
}

как ето реализовиать
одиночное нажатие на кнопку «удалить» должно удалять один символ;
удержание кнопки в течение двух секунд должно очищать экран;
удержание кнопки «0» должно выводить на дисплей точку, для работы с
десятичными дробями;
не могу понять как в коде задать удержания клавиш
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2018, 19:39
Ответы с готовыми решениями:

Удержание светодиода при приеме кода залипания с ИК приемника
Здравствуйте . Я подключил IR приёмник к ардуино и всё было хорошо,пока я не захотел сделать...

Удержание кнопки мыши
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,...

Удержание кнопки, изменение значений
Подскажите пожалуйста, как написать на С# чтобы при удержании кнопки у меня значения изменялось в...

Разная логика на "нажатие" и "нажатие и удержание в течение 5 сек" кнопки
Здравствуйте. На форме кнопка. Требуется, чтобы при её нажатии выполнялась функция (выполнялась...

1
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
14.03.2018, 21:02 2
Цитата Сообщение от kermet17 Посмотреть сообщение
не могу понять как в коде задать удержания клавиш
Я вам в другом форуме расписал как такое делать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2018, 21:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удержание цвета
Access, форма, на форме кнопка. При нажатии на кнопку происходит загрузка данных из XLS файлов....

Удержание формы
Имеется две формы, которая находится одна на другой. Нужно, чтобы при нажатии на одну форму, другая...

Вызов на удержание (asterisk)
Добрый день, коллеги! Есть телефонная база Grandstream DP720 (с парой трубок или телефоны...

Сокеты и удержание их открытыми
Здравствуйте. Подскажите как это делается. Сейчас для отправки смс открывается соединение, далее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.