C ++ многосимвольная символьная константа - PullRequest
1 голос
/ 06 февраля 2020

Использование клавиатуры Arduino для вывода числа на 7-сегментный дисплей. Я делаю это с помощью библиотеки robojax-Keypad. Полученная ошибка: \7SegDisKeypad.ino:245:14: warning: multi-character character constant [-Wmultichar] Я проверил, чтобы все входные значения были правильными. Я не уверен, почему это происходит, и не уверен, как я мог бы go исправить это. Это мой код: (с удаленным 7-сегментным отображаемым кодом)

#include <Keypad.h>


int E = 13;
int D = 12;
int C = 11;
int DP = 10;
int B = 9;
int A = 8;
int F = 7;
int G = 6;

int k1 = A0;
int k2 = A1;
int k3 = A2;
int k4 = A3;
int k5 = 5;
int k6 = 4;
int k7 = 3;
int k8 = 2;

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {A0, A1, A2, A3}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5,4,3,2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

//7 Seg display code here

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(E, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(DP, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(A, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);

  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  char key = keypad.getKey();

  if (key == 'k1') {
    one();
  }


}

Я впервые использую эту библиотеку, и я все еще довольно новичок с c ++ и arduinos, поэтому любая помощь приветствуется! Большое спасибо, Джеймс

1 Ответ

0 голосов
/ 06 февраля 2020

Кажется, что вы используете эту библиотеку клавиатуры .

Затем keypad.getKey() возвращает фактический символ клавиатуры, инициализированный keys .

Таким образом, если вы нажмете клавишу 5, то keypad.getKey() вернет символ '5'.

...