• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z kompilacją kodu dla Pro Micro
#1
Dzień dobry wszystkim forumowiczom, Chcieliśmy z bratem stworzyć kontroler do komputera wedle tego poradnika https://www.youtube.com/watch?v=Z7Sc4MJ8RPM

Fizycznie powtórzyliśmy wszystko w skali prawie 1:1 ("prawie" tylko dlatego że różnią się same przyciski tj. ilość pinów się zgadza, pozostaje tylko kwestia wyglądu) To nasz pierwszy kontakt z takimi rozwiązaniami.  Początkowo kupiliśmy arduino nano, dopiero potem zauważyliśmy, że pomiędzy wersją nano a pro micro występują różnice w pinach (pan w sklepie doradził, że nano w tym przypadku będzie podobne, tak więc poszliśmy za jego radą) Kiedy przyszedł czas na połączenie kabli z arduino okazało się, że brakuje na nim pozycji 15. Nie chcieliśmy kombinować i poszliśmy na łatwiznę, kupiliśmy dokładnie to co on. Co do kodu również skorzystaliśmy z jego pomocy. 

 No i właśnie od tego momentu wszystko zaczęło się psuć. Pierwszy problem pojawił się już na samym początku, kiedy nie znajdowało nam #include <keypad.h> i #include <joystick.h>. Z tym sobie jakoś poradziłem. Pogooglowałem trochę, i doszedłem do wniosku, że trzeba dodać bibliotekę. Tak więc zrobiłem. Natomiast ten błąd nas już przerasta. W załączniku wrzycamy wszystkie pliki jakich używamy. 

Nie umiemy sobie z tym poradzić, gdyby ktoś z forumowiczów pomógł, bylibyśmy zobowiązani.
Pozdrawiamy


Kod:
Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Płytka:"Arduino/Genuino Micro"

ARDUINO_BUTTON_BOXV2:86: error: 'Keypad' does not name a type

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

^

ARDUINO_BUTTON_BOXV2:88: error: 'Joystick_' does not name a type

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,

^

C:\Users\sebas\Downloads\32-FUNCTION-BUTTON-BOX-master\32-FUNCTION-BUTTON-BOX-master\ARDUINO_BUTTON_BOXV2\ARDUINO_BUTTON_BOXV2.ino: In function 'void setup()':

ARDUINO_BUTTON_BOXV2:94: error: 'Joystick' was not declared in this scope

  Joystick.begin();

  ^

C:\Users\sebas\Downloads\32-FUNCTION-BUTTON-BOX-master\32-FUNCTION-BUTTON-BOX-master\ARDUINO_BUTTON_BOXV2\ARDUINO_BUTTON_BOXV2.ino: In function 'void CheckAllButtons()':

ARDUINO_BUTTON_BOXV2:106: error: 'buttbx' was not declared in this scope

      if (buttbx.getKeys())

          ^

ARDUINO_BUTTON_BOXV2:108: error: 'LIST_MAX' was not declared in this scope

       for (int i=0; i<LIST_MAX; i++)  

                       ^

ARDUINO_BUTTON_BOXV2:113: error: 'PRESSED' was not declared in this scope

                    case PRESSED:

                         ^

ARDUINO_BUTTON_BOXV2:114: error: 'HOLD' was not declared in this scope

                    case HOLD:

                         ^

ARDUINO_BUTTON_BOXV2:115: error: 'Joystick' was not declared in this scope

                              Joystick.setButton(buttbx.key[i].kchar, 1);

                              ^

ARDUINO_BUTTON_BOXV2:117: error: 'RELEASED' was not declared in this scope

                    case RELEASED:

                         ^

ARDUINO_BUTTON_BOXV2:118: error: 'IDLE' was not declared in this scope

                    case IDLE:

                         ^

C:\Users\sebas\Downloads\32-FUNCTION-BUTTON-BOX-master\32-FUNCTION-BUTTON-BOX-master\ARDUINO_BUTTON_BOXV2\ARDUINO_BUTTON_BOXV2.ino: In function 'void CheckAllEncoders()':

ARDUINO_BUTTON_BOXV2:150: error: 'Joystick' was not declared in this scope

      Joystick.setButton(rotaries[i].ccwchar, 1); delay(50); Joystick.setButton(rotaries[i].ccwchar, 0);

      ^

ARDUINO_BUTTON_BOXV2:153: error: 'Joystick' was not declared in this scope

      Joystick.setButton(rotaries[i].cwchar, 1); delay(50); Joystick.setButton(rotaries[i].cwchar, 0);

      ^

exit status 1
'Keypad' does not name a type

Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"


Załączone pliki
.zip   32-FUNCTION-BUTTON-BOX-master.zip (Rozmiar: 2.05 KB / Pobrań: 4)
.zip   ArduinoJoystickLibrary-master.zip (Rozmiar: 32.47 KB / Pobrań: 3)
 
Odpowiedź
#2
"#include <joystick.h>. Z tym sobie jakoś poradziłem. Pogooglowałem trochę, i doszedłem do wniosku, że trzeba dodać bibliotekę." Poradziłem sobie chyba nie do końca ? skąd wzięli ten joystick.h ? . Z tego foldera "ArduinoJoystickLibrary-master" trzeba skopiować "Joystick" i wkleić do folderu bibliotek ,nie używam tego systemu więc konkretnie nie podam miejsca.
 
Odpowiedź
#3
(03-08-2018, 14:25)-adamek napisał(a): "#include <joystick.h>. Z tym sobie jakoś poradziłem. Pogooglowałem trochę, i doszedłem do wniosku, że trzeba dodać bibliotekę." Poradziłem sobie chyba nie do końca ? skąd wzięli ten joystick.h ? . Z tego foldera "ArduinoJoystickLibrary-master" trzeba skopiować "Joystick" i wkleić do folderu bibliotek ,nie używam tego systemu więc konkretnie nie podam miejsca.

Zrobiłem tak z folderem joystick, w tym moemencie kod błędu wygląda tak:

Kod:
Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Płytka:"Arduino/Genuino Micro"

ARDUINO_BUTTON_BOXV2:90: error: 'Keypad' does not name a type

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

^

C:\Users\sebas\Downloads\32-FUNCTION-BUTTON-BOX-master\32-FUNCTION-BUTTON-BOX-master\ARDUINO_BUTTON_BOXV2\ARDUINO_BUTTON_BOXV2.ino: In function 'void CheckAllButtons()':

ARDUINO_BUTTON_BOXV2:110: error: 'buttbx' was not declared in this scope

      if (buttbx.getKeys())

          ^

ARDUINO_BUTTON_BOXV2:112: error: 'LIST_MAX' was not declared in this scope

       for (int i=0; i<LIST_MAX; i++)  

                       ^

ARDUINO_BUTTON_BOXV2:117: error: 'PRESSED' was not declared in this scope

                    case PRESSED:

                         ^

ARDUINO_BUTTON_BOXV2:118: error: 'HOLD' was not declared in this scope

                    case HOLD:

                         ^

ARDUINO_BUTTON_BOXV2:121: error: 'RELEASED' was not declared in this scope

                    case RELEASED:

                         ^

ARDUINO_BUTTON_BOXV2:122: error: 'IDLE' was not declared in this scope

                    case IDLE:

                         ^

exit status 1
'Keypad' does not name a type

Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
 
Odpowiedź
#4
Jak tu zakładasz post to wklej swój szkic, super również biblioteki. Gość na filmie zrobił dobrze, ale Ty jak nie masz pojęcia co piszesz to tak jakbyś przepisywał skrypt po japońsku, może gdzieś brakuje kropeczki (dla Ciebie niewidzialnej) i działać nie będzie. Pewnie dalej brakuje jakiejś biblioteki, tym razem wygląda na to, że w definicjach i w folderze.
Jak ktoś robi poradniki na YouTube to czasami zapomni o tym wspomnieć, bo on ma tę bibliotekę od roku, czyli "od zawsze".
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#5
(03-08-2018, 17:20)kaczakat napisał(a): Jak tu zakładasz post to wklej swój szkic, super również biblioteki. Gość na filmie zrobił dobrze, ale Ty jak nie masz pojęcia co piszesz to tak jakbyś przepisywał skrypt po japońsku, może gdzieś brakuje kropeczki (dla Ciebie niewidzialnej) i działać nie będzie. Pewnie dalej brakuje jakiejś biblioteki, tym razem wygląda na to, że w definicjach i w folderze.
Jak ktoś robi poradniki na YouTube to czasami zapomni o tym wspomnieć, bo on ma tę bibliotekę od roku, czyli "od zawsze".

Tak się składa, że wszystkie pliki jakich użyłem wgrałem w pierwszym poście, skoro ten człowiek zrobił wszystko dobrze, niemożliwym jest żebym przepisał coś źle z tego powodu, że nic nie przepisywałem, kliknąłem tylko w plik o rozszerzeniu .ino i cały kod otworzył się w programie do kodowania. Z tego co czytałem w komentarzach ludzie mieli problemu z tą liniją keypad.h, w wyjaśnieniach dostali taką instrukcję [color=rgba(255, 255, 255, 0.88)]Sketch > Include library > Manage Library > search for Keypad.h

Może problem leży w miejscu znajdowania się plików na dysku ? (chodzi mi o biblioteki)
[/color]
 
Odpowiedź
#6
A keypad jest ten ? http://playground.arduino.cc/uploads/Code/keypad.zip jak nie to usuwamy tamten a kopiujemy ten .
Bo z ciekawości kompilowałem to i nie mam żadnych błędów .
 
Odpowiedź
#7
(03-08-2018, 20:21)-adamek napisał(a): A  keypad  jest ten ?   http://playground.arduino.cc/uploads/Code/keypad.zip    jak nie to usuwamy tamten a kopiujemy ten .
Bo z ciekawości kompilowałem to i nie mam żadnych błędów .

TAK ! O to chodziło. Dzięki wielkie. Już wyjaśniam o co chodzi. Nie użyłem biblioteki o podanej przez Ciebie nazwie, tylko stockowej Keyboard. Teraz wszystko działa oprócz jednego encodera, nie wiem tylko czy to przez kod czy raczej chodzi tu o fizyczne uszkodzenie przez moje lutowanie. Klik enkodera działa ale na obracanie gałką program nie wyłapuje. Do przypisania klawiszy używam JoyToKey
 
Odpowiedź
#8
Gość w opisie filmu dawał link do joystick.h także nie trzeba było nic googlować. Natomiast jest istotne gdzie wgrałeś ten KATALOG Joystick, lokalizacja pewnie zależy od systemu, na Windowsie ma być katalog "../Moje Dokumenty/Arduino/libraries/Joystick".
Na Nano to nie miało prawo działać, nawet nie chodzi o piny, ale o to że MICRO i LEONARDO (DUE)  mają wbudowany USB w procesor i to jest używane w tym programie. UNO/NANO/PRO MINI/MEGA mają USB tylko do zasilania i komunikacji UART.
Nie ja wymyślam zasady jak należy zadawać pytania, szkic ma być w formie do czytania a nie do ściągania, bo ktoś może Ci udzielić odpowiedzi jadąc pociągiem, nie ściągnie, nie rozpakuje i nie wczyta INO w telefonie. Biblioteki w załączniku - super, od razu można sprawdzić czy np. ja nie mam innej.
Kod:
//BUTTON BOX
//USE w ProMicro
//Tested in WIN10 + Assetto Corsa
//AMSTUDIO
//20.8.17

#include <Keypad.h>
#include <Joystick.h>

#define ENABLE_PULLUPS
#define NUMROTARIES 4
#define NUMBUTTONS 24
#define NUMROWS 5
#define NUMCOLS 5


byte buttons[NUMROWS][NUMCOLS] = {
 {0,1,2,3,4},
 {5,6,7,8,9},
 {10,11,12,13,14},
 {15,16,17,18,19},
 {20,21,22,23},
};

struct rotariesdef {
 byte pin1;
 byte pin2;
 int ccwchar;
 int cwchar;
 volatile unsigned char state;
};

rotariesdef rotaries[NUMROTARIES] {
 {0,1,24,25,0},
 {2,3,26,27,0},
 {4,5,28,29,0},
 {6,7,30,31,0},
};

#define DIR_CCW 0x10
#define DIR_CW 0x20
#define R_START 0x0

#ifdef HALF_STEP
#define R_CCW_BEGIN 0x1
#define R_CW_BEGIN 0x2
#define R_START_M 0x3
#define R_CW_BEGIN_M 0x4
#define R_CCW_BEGIN_M 0x5
const unsigned char ttable[6][4] = {
 // R_START (00)
 {R_START_M,            R_CW_BEGIN,     R_CCW_BEGIN,  R_START},
 // R_CCW_BEGIN
 {R_START_M | DIR_CCW, R_START,        R_CCW_BEGIN,  R_START},
 // R_CW_BEGIN
 {R_START_M | DIR_CW,  R_CW_BEGIN,     R_START,      R_START},
 // R_START_M (11)
 {R_START_M,            R_CCW_BEGIN_M,  R_CW_BEGIN_M, R_START},
 // R_CW_BEGIN_M
 {R_START_M,            R_START_M,      R_CW_BEGIN_M, R_START | DIR_CW},
 // R_CCW_BEGIN_M
 {R_START_M,            R_CCW_BEGIN_M,  R_START_M,    R_START | DIR_CCW},
};
#else
#define R_CW_FINAL 0x1
#define R_CW_BEGIN 0x2
#define R_CW_NEXT 0x3
#define R_CCW_BEGIN 0x4
#define R_CCW_FINAL 0x5
#define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {
 // R_START
 {R_START,    R_CW_BEGIN,  R_CCW_BEGIN, R_START},
 // R_CW_FINAL
 {R_CW_NEXT,  R_START,     R_CW_FINAL,  R_START | DIR_CW},
 // R_CW_BEGIN
 {R_CW_NEXT,  R_CW_BEGIN,  R_START,     R_START},
 // R_CW_NEXT
 {R_CW_NEXT,  R_CW_BEGIN,  R_CW_FINAL,  R_START},
 // R_CCW_BEGIN
 {R_CCW_NEXT, R_START,     R_CCW_BEGIN, R_START},
 // R_CCW_FINAL
 {R_CCW_NEXT, R_CCW_FINAL, R_START,     R_START | DIR_CCW},
 // R_CCW_NEXT
 {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},
};
#endif

byte rowPins[NUMROWS] = {21,20,19,18,15};
byte colPins[NUMCOLS] = {14,16,10,9,8};

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
 JOYSTICK_TYPE_JOYSTICK, 32, 0,
 false, false, false, false, false, false,
 false, false, false, false, false);

void setup() {
 Joystick.begin();
 rotary_init();}

void loop() {

 CheckAllEncoders();

 CheckAllButtons();

}

void CheckAllButtons(void) {
     if (buttbx.getKeys())
   {
      for (int i=0; i<LIST_MAX; i++)  
       {
          if ( buttbx.key[i].stateChanged )  
           {
           switch (buttbx.key[i].kstate) {  
                   case PRESSED:
                   case HOLD:
                             Joystick.setButton(buttbx.key[i].kchar, 1);
                             break;
                   case RELEASED:
                   case IDLE:
                             Joystick.setButton(buttbx.key[i].kchar, 0);
                             break;
           }
          }  
        }
    }
}


void rotary_init() {
 for (int i=0;i<NUMROTARIES;i++) {
   pinMode(rotaries[i].pin1, INPUT);
   pinMode(rotaries[i].pin2, INPUT);
   #ifdef ENABLE_PULLUPS
     digitalWrite(rotaries[i].pin1, HIGH);
     digitalWrite(rotaries[i].pin2, HIGH);
   #endif
 }
}


unsigned char rotary_process(int _i) {
  unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotaries[_i].pin1);
 rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate];
 return (rotaries[_i].state & 0x30);
}

void CheckAllEncoders(void) {
 for (int i=0;i<NUMROTARIES;i++) {
   unsigned char result = rotary_process(i);
   if (result == DIR_CCW) {
     Joystick.setButton(rotaries[i].ccwchar, 1); delay(50); Joystick.setButton(rotaries[i].ccwchar, 0);
   };
   if (result == DIR_CW) {
     Joystick.setButton(rotaries[i].cwchar, 1); delay(50); Joystick.setButton(rotaries[i].cwchar, 0);
   };
 }
}

Niestety masz zapewne złą wersję biblioteki keypad, szukaj innej, u mnie się skompilowało po dodaniu biblioteki Joystick.h.


Kod:
Sketch uses 9402 bytes (32%) of program storage space. Maximum is 28672 bytes.
Global variables use 487 bytes (19%) of dynamic memory, leaving 2073 bytes for local variables. Maximum is 2560 bytes.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#9
Witam Wszystkich serdecznie.
Nie chcę zakładać nowego wątku, ponieważ mój problem jest zbliżony do tego, który miał założyciel tego wątku. Otóż zbudowałem sobie ten sam box z guzikami i przełącznikami do symulatorów jazdy, który można było zobaczyć na filmie powyżej. Zrobiłem wszystko według planów, które kupiłem od AMStudio. Problem zaczyna się przy kompilacji. Cały czas wyskakują mi błędy i jak tylko coś zmienię to one się zmieniają. Zanim wkleję tutaj kod to dodam, że mam już inne Arduino ProMicro, które odpowiada za hamulec ręczny oraz Arduino Uno z dwiema płytkami Motorshield V2, które odpowiadają za silniki wibracyjne. Napisałem to na wszelki wypadek, gdyby coś miało się ze sobą gryźć. Próbowałem już bawić sie bibliotekami, wgrywać nowe, jak również te podane przez twórcę kodu. Pogrzebałem w internecie, ale nie znalazłem rozwiązania mojego problemu. Dodam jeszcze, że totalnie nie znam się na elektronice oraz programowaniu. O to moj kod:

#include <Joystick.h>

//BUTTON BOX
//USE w ProMicro
//Tested in WIN10 + Assetto Corsa
//AMSTUDIO
//20.8.17

#include <Keypad.h>
#include <Joystick.h>

#define ENABLE_PULLUPS
#define NUMROTARIES 4
#define NUMBUTTONS 24
#define NUMROWS 5
#define NUMCOLS 5


byte buttons[NUMROWS][NUMCOLS] = {
  {0,1,2,3,4},
  {5,6,7,8,9},
  {10,11,12,13,14},
  {15,16,17,18,19},
  {20,21,22,23},
};

struct rotariesdef {
  byte pin1;
  byte pin2;
  int ccwchar;
  int cwchar;
  volatile unsigned char state;
};

rotariesdef rotaries[NUMROTARIES] {
  {0,1,24,25,0},
  {2,3,26,27,0},
  {4,5,28,29,0},
  {6,7,30,31,0},
};

#define DIR_CCW 0x10
#define DIR_CW 0x20
#define R_START 0x0

#ifdef HALF_STEP
#define R_CCW_BEGIN 0x1
#define R_CW_BEGIN 0x2
#define R_START_M 0x3
#define R_CW_BEGIN_M 0x4
#define R_CCW_BEGIN_M 0x5
const unsigned char ttable[6][4] = {
  // R_START (00)
  {R_START_M,            R_CW_BEGIN,    R_CCW_BEGIN,  R_START},
  // R_CCW_BEGIN
  {R_START_M | DIR_CCW, R_START,        R_CCW_BEGIN,  R_START},
  // R_CW_BEGIN
  {R_START_M | DIR_CW,  R_CW_BEGIN,    R_START,      R_START},
  // R_START_M (11)
  {R_START_M,            R_CCW_BEGIN_M,  R_CW_BEGIN_M, R_START},
  // R_CW_BEGIN_M
  {R_START_M,            R_START_M,      R_CW_BEGIN_M, R_START | DIR_CW},
  // R_CCW_BEGIN_M
  {R_START_M,            R_CCW_BEGIN_M,  R_START_M,    R_START | DIR_CCW},
};
#else
#define R_CW_FINAL 0x1
#define R_CW_BEGIN 0x2
#define R_CW_NEXT 0x3
#define R_CCW_BEGIN 0x4
#define R_CCW_FINAL 0x5
#define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {
  // R_START
  {R_START,    R_CW_BEGIN,  R_CCW_BEGIN, R_START},
  // R_CW_FINAL
  {R_CW_NEXT,  R_START,    R_CW_FINAL,  R_START | DIR_CW},
  // R_CW_BEGIN
  {R_CW_NEXT,  R_CW_BEGIN,  R_START,    R_START},
  // R_CW_NEXT
  {R_CW_NEXT,  R_CW_BEGIN,  R_CW_FINAL,  R_START},
  // R_CCW_BEGIN
  {R_CCW_NEXT, R_START,    R_CCW_BEGIN, R_START},
  // R_CCW_FINAL
  {R_CCW_NEXT, R_CCW_FINAL, R_START,    R_START | DIR_CCW},
  // R_CCW_NEXT
  {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},
};
#endif

byte rowPins[NUMROWS] = {21,20,19,18,15};
byte colPins[NUMCOLS] = {14,16,10,9,8};

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
  JOYSTICK_TYPE_JOYSTICK, 32, 0,
  false, false, false, false, false, false,
  false, false, false, false, false);

void setup() {
  Joystick.begin();
  rotary_init();}

void loop() {

  CheckAllEncoders();

  CheckAllButtons();

}

void CheckAllButtons(void) {
      if (buttbx.getKeys())
    {
      for (int i=0; i<LIST_MAX; i++) 
        {
          if ( buttbx.key[i].stateChanged ) 
            {
            switch (buttbx.key[i].kstate) { 
                    case PRESSED:
                    case HOLD:
                              Joystick.setButton(buttbx.key[i].kchar, 1);
                              break;
                    case RELEASED:
                    case IDLE:
                              Joystick.setButton(buttbx.key[i].kchar, 0);
                              break;
            }
          } 
        }
    }
}


void rotary_init() {
  for (int i=0;i<NUMROTARIES;i++) {
    pinMode(rotaries[i].pin1, INPUT);
    pinMode(rotaries[i].pin2, INPUT);
    #ifdef ENABLE_PULLUPS
      digitalWrite(rotaries[i].pin1, HIGH);
      digitalWrite(rotaries[i].pin2, HIGH);
    #endif
  }
}


unsigned char rotary_process(int _i) {
  unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotaries[_i].pin1);
  rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate];
  return (rotaries[_i].state & 0x30);
}

void CheckAllEncoders(void) {
  for (int i=0;i<NUMROTARIES;i++) {
    unsigned char result = rotary_process(i);
    if (result == DIR_CCW) {
      Joystick.setButton(rotaries[i].ccwchar, 1); delay(50); Joystick.setButton(rotaries[i].ccwchar, 0);
    };
    if (result == DIR_CW) {
      Joystick.setButton(rotaries[i].cwchar, 1); delay(50); Joystick.setButton(rotaries[i].cwchar, 0);
    };
  }
}







A oto błąd który wyskakuje w tej chwili:

ARDUINO_BUTTON_BOXV2:97:20: error: 'JOYSTICK_DEFAULT_REPORT_ID' was not declared in this scope

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,

                    ^

ARDUINO_BUTTON_BOXV2:98:3: error: 'JOYSTICK_TYPE_JOYSTICK' was not declared in this scope

  JOYSTICK_TYPE_JOYSTICK, 32, 0,

  ^

exit status 1
'JOYSTICK_DEFAULT_REPORT_ID' was not declared in this scope





Z góry dziękuję za pomoc.
 
Odpowiedź
#10
Szkic wkleja się w znaczniki <> CODE w pełnej edycji.
W poprzednim moim poście jest kod, który się skompilował u mnie, oczywiście płytką dla której robisz kompilację ma być Leonardo lub PRO MICRO. Skopiuj go i skompiluj. Jeśli się nie skompiluje szukaj dalej bibliotek, jak się skompiluje szukaj błędu w swoim programie.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości