• 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ą na Arduino Nano
#1
Witam. 
Posiadam Arduino Nano v3.0 CH340  (MOD-08222 AS3-8.8)
ATMEL MEGA328P AU 1732 
Na odwrocie: 
WCH CH340G 202686652 
AMS1117 50 DN728 
Płytka z portem USB 

System operacyjny Win 10 edu
Arduino 1.8.5
 


Wyskakuję mi taki błąd:

C:\Users\Varen\AppData\Local\Temp\ccJtTz6k.ltrans0.ltrans.o: In function `setup':

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:74: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:74: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:74: undefined reference to `Keyboard_::begin()'

C:\Users\Varen\AppData\Local\Temp\ccJtTz6k.ltrans0.ltrans.o: In function `loop':

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:82: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:82: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:82: undefined reference to `Keyboard_::press(unsigned char)'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:86: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:86: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:86: undefined reference to `Keyboard_::release(unsigned char)'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:90: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:90: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:90: undefined reference to `Keyboard_::press(unsigned char)'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:94: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:94: undefined reference to `Keyboard'

C:\Users\Varen\Documents\Arduino\sketch_feb17a/sketch_feb17a.ino:94: undefined reference to `Keyboard_::release(unsigned char)'

collect2.exe: error: ld returned 1 exit status

exit status 1
Błąd kompilacji dla płytki Arduino Nano.




Mój kod to 

#include <HID.h>

#define KEY_LEFT_CTRL   0x80
#define KEY_LEFT_SHIFT    0x81
#define KEY_LEFT_ALT    0x82
#define KEY_LEFT_GUI    0x83
#define KEY_RIGHT_CTRL    0x84
#define KEY_RIGHT_SHIFT   0x85
#define KEY_RIGHT_ALT   0x86
#define KEY_RIGHT_GUI   0x87

#define KEY_UP_ARROW    0xDA
#define KEY_DOWN_ARROW    0xD9
#define KEY_LEFT_ARROW    0xD8
#define KEY_RIGHT_ARROW   0xD7
#define KEY_BACKSPACE   0xB2
#define KEY_TAB       0xB3
#define KEY_RETURN      0xB0
#define KEY_ESC       0xB1
#define KEY_INSERT      0xD1
#define KEY_DELETE      0xD4
#define KEY_PAGE_UP     0xD3
#define KEY_PAGE_DOWN   0xD6
#define KEY_HOME      0xD2
#define KEY_END       0xD5
#define KEY_CAPS_LOCK   0xC1
#define KEY_F1        0xC2
#define KEY_F2        0xC3
#define KEY_F3        0xC4
#define KEY_F4        0xC5
#define KEY_F5        0xC6
#define KEY_F6        0xC7
#define KEY_F7        0xC8
#define KEY_F8        0xC9
#define KEY_F9        0xCA
#define KEY_F10       0xCB
#define KEY_F11       0xCC
#define KEY_F12       0xCD

//  Low level key report: up to 6 keys and shift, ctrl etc at once
typedef struct
{
  uint8_t modifiers;
  uint8_t reserved;
  uint8_t keys[6];
} KeyReport;

class Keyboard_ : public Print
{
private:
  KeyReport _keyReport;
  void sendReport(KeyReport* keys);
public:
  Keyboard_(void);
  void begin(void);
  void end(void);
  size_t write(uint8_t k);
  size_t press(uint8_t k);
  size_t release(uint8_t k);
  void releaseAll(void);
};
extern Keyboard_ Keyboard;


int licznikwcisniec = 0;
const int  osutapa = 2;
const int  osutapb = 3;
const int  przelacznik = 4;

void setup() 
{
  pinMode(osutapa, INPUT_PULLUP);
  pinMode(osutapb, INPUT_PULLUP);
  Keyboard.begin();
}

void loop()
{
  
if (digitalRead(osutapa) == LOW)
  {
   Keyboard.press('e');
  } 
else 
{
  Keyboard.release('e');
}
if (digitalRead(osutapb) == LOW)
  {
      Keyboard.press('r');
  } 
  else 
  {
      Keyboard.release('r');
  }
if (digitalRead(przelacznik) == LOW)
{
    licznikwcisniec++;
    delay(333); 
}

switch (licznikwcisniec)
{
  case 0: nic(); 
  break;
  case 1: er(); 
  break;
  case 2: obudowa(); 
  break;
  case 3: oba(); 
  break;
  default: nic();
  break;
}
}

void nic()
{
  pinMode(5, LOW);
  pinMode(6, LOW);
}
void er()
{
  pinMode(5, HIGH);
  pinMode(6, LOW);
}
void obudowa()
{
  pinMode(5, LOW);
  pinMode(6, HIGH);
}
void oba()
{
  pinMode(5, HIGH);
  pinMode(6, HIGH);
}


Wcześniej nie chciał załączyć Kayboard.h więc został przeze mnie dodany ręcznie.
 
Odpowiedź
#2
Z tego co wiem arduino jako klawiatura/mysz działa w arduino MICRO/LEONARDO/DUE które mają wbudowaną obsługę USB. Sprawdź, czy skompiluje dla takiej płytki, nie wiem skąd masz ten kod więc nie sprawdzę u siebie.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
328 nie ma tych instrukcji, które wywołujesz.
Dla twojego sprzętu, nie skompiluje się ten kod.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości