Реализация двух джойстиков и кнопок для игр ProMicro
- Войдите на сайт для отправки комментариев
Чт, 25/07/2019 - 13:53
// pin mappings
const int pinButton2 = 2; // кнопка ручки 1
const int pinButton3 = 3; // кнопка ручки 2
const int pinButton4 = 4; // кнопка ручки 3
const int pinButton5 = 5; // кнопка джойстика 1
const int pinButton6 = 6; // кнопка джойстика 2
const int pinX1 = A1; // Ось X джойстика 1
const int pinY1 = A0; // Ось Y джойстика 1
const int pinX2 = A3; // Ось X джойстика 1
const int pinY2 = A2; // Ось Y джойстика 1
int VpinX1, VpinY1, VpinX2, VpinY2, = 0; // переменные для хранения значений осей
void setup() {
// pinsetup
pinMode(pinButton2, INPUT_PULLUP);
pinMode(pinButton3, INPUT_PULLUP);
pinMode(pinButton4, INPUT_PULLUP);
pinMode(pinButton5, INPUT_PULLUP);
pinMode(pinButton6, INPUT_PULLUP);
// Sends a clean report to the host. This is important on any Arduino type.
Gamepad.begin();
Serial.begin(9600);
}
void loop() {
// check each button and press Gamepad if needed
if (!digitalRead(pinButton2))
Gamepad.press(2);
else
Gamepad.release(2);
if (!digitalRead(pinButton3))
Gamepad.press(3);
else
Gamepad.release(3);
if (!digitalRead(pinButton4))
Gamepad.press(4);
else
Gamepad.release(4);
if (!digitalRead(pinButton5))
Gamepad.press(5);
else
Gamepad.release(5);
if (!digitalRead(pinButton6))
Gamepad.press(6);
else
Gamepad.release(6);
VpinX1 analogRead (pinX1); // значение оси Х1
VpinY1 analogRead (pinY1); // значение оси Y1
VpinX2 analogRead (pinX2); // значение оси Х2
VpinY2 analogRead (pinY2); // значение оси Y2
// write the information to the host now!
Gamepad.write();
}
Здравствуйте! Пытаюсь прописать два джойстика... ткните где моя ошибка?
error: expected ';' before 'analogRead' Ошибка компиляции.
Строки 54-57, не хватает одного знака.
54-57 убрать пробел перед "("
Убрал пробелы, итог: error: expected ';' before 'analogRead'
= перед
analogRead - так же ошибка.Что такое VpinX1?
= перед
analogRead - так же ошибка.Нужно читать и понимать текст ошибки. Хоть с гуглопереводчиком что ли! Если уж совсем плохо, копируйте его полностью сюда.
Кроме отсутствующих операторов присваивания, есть ещё две ошибки - необъявленная переменная Gamepad (надо объявить!) и какая-то нелепая запятая в строке 11 (убрать)
Это про компиляцию. Но работать всё равно не будет, т.к. переменные VpinX1 и подобные всё равно дальше нигде не используются.
const int pinButton2 = 2; // кнопка ручки 1 const int pinButton3 = 3; // кнопка ручки 2 const int pinButton4 = 4; // кнопка ручки 3 const int pinButton5 = 5; // кнопка джойстика 1 const int pinButton6 = 6; // кнопка джойстика 2 const int pinX1 = A1; // Ось X джойстика 1 const int pinY1 = A0; // Ось Y джойстика 1 const int pinX2 = A3; // Ось X джойстика 2 const int pinY2 = A2; // Ось Y джойстика 2 void setup() { pinMode(pinButton2, INPUT_PULLUP); pinMode(pinButton3, INPUT_PULLUP); pinMode(pinButton4, INPUT_PULLUP); pinMode(pinButton5, INPUT_PULLUP); pinMode(pinButton6, INPUT_PULLUP); Gamepad.begin(); } void loop() { if (!digitalRead(pinButton2)) Gamepad.press(2); else Gamepad.release(2); if (!digitalRead(pinButton3)) Gamepad.press(3); else Gamepad.release(3); if (!digitalRead(pinButton4)) Gamepad.press(4); else Gamepad.release(4); if (!digitalRead(pinButton5)) Gamepad.press(5); else Gamepad.release(5); if (!digitalRead(pinButton6)) Gamepad.press(6); else Gamepad.release(6); analogRead(pinX1) ; // значение оси Х1 analogRead(pinY1) ; // значение оси Y1 analogRead(pinX2) ; // значение оси Х2 analogRead(pinY2) ; // значение оси Y2 Gamepad.write(); }Компилируется без ошибок такой код. Но! В играх определяются толко кнопки, без джойстиков... осей не хватает, не определяются.
Вы же ни строчки здесь не понимаете? И кстати, Вы уверены, что этот проект, который Вы пытаетесь повторить, подразумевает какую-то работу с джойстиками?
Если бы я все понимал, я бы не создавал подобную тему. Я обратился за помощью, а не для выяснения понимаю-не понимаю. А для ответа на Ваш второй вопрос, скажу одно - все прописано в моем первом посте.
Компилируется без ошибок такой код. Но!
Если бы я все понимал, я бы не создавал подобную тему.
Есть разница "не всё понимать" и "ничего не понимать".
Когда ничего не понимаешь, надо не темы создавать, а читать учебники. Большой список есть в первой теме раздела "Песочница".
Если бы я все понимал, я бы не создавал подобную тему. Я обратился за помощью, а не для выяснения понимаю-не понимаю. А для ответа на Ваш второй вопрос, скажу одно - все прописано в моем первом посте.
Ну напишут Вам, что значения, которые Вы считываете с аналоговых входов, по-прежнему в скетче никак Вами не используются. Поможет? Дальше спросите, а как их использовать? А кто же Вас знает - Ваш скетч-то! Только Вы знаете, что он должен делать. Про переменную Gamepad спрашивать тоже похоже бесполезно.
Что это хоть получиться-то должно? Как всегда секретный проект или всё-таки есть какой-то первоисточник?