Advertisement
ivanumass

Untitled

Jun 13th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 0 0
  1. void proccess_dial() {                  //Функция обработчика диска--------------------------------------
  2.   lock_bounce.update();               //антидребезг замка диска
  3.   lock_state = lock_bounce.read();
  4.  
  5.   if (lock_state == HIGH) {           //если замок диска открыт
  6.     disk_bounce.update();           //смотрим на пин диска
  7.     if (disk_bounce.rose()) {       //если он поднялся
  8.       disk_pulses ++;               //добавляем единицу в переменную цифры
  9.     }
  10.   }
  11.   if (lock_bounce.fell() && disk_pulses < 10) { //если замок закрылся и переменная цифры меньше десяти
  12.     ph_num [digit_pos] = disk_pulses + 48;      //присваиваем текущей цифре номера значение переменной цифры с учетом поправки на АСКИИ код
  13.     disk_pulses = 0;                            //сбрасываем переменную цифры на ноль
  14.     digit_pos++;                                //добавляем единицу в переменную текущей цифры номера
  15.   }
  16.   if (lock_bounce.fell() && disk_pulses == 10) { //если замок закрылся и переменная цифры равна десяти (ноль на вертушке)
  17.     disk_pulses = 0;
  18.     ph_num [digit_pos] = disk_pulses + 48;
  19.     digit_pos++;
  20.   }
  21.   if (ph_num[0] == 49 && digit_pos == 3) {
  22.     number_send();
  23.     digit_pos = 0;
  24.   }
  25.   else if(ph_num[0] == 56 && digit_pos == 10){
  26.     number_send();
  27.     digit_pos = 0;
  28.   }
  29.   else if (ph_num[0] != 56 && digit_pos == 7){
  30.     number_send();
  31.     digit_pos = 0;
  32.   }
  33. }
  34.  
  35. void number_send() {
  36.   Serial.print("ATD");
  37.   Serial.println(ph_num);
  38.   for (byte i = 0; i < 11; i++) ph_num[i] = ' ';
  39.   phone_state = 3;
  40.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement