1

Topic: Поле ввода, Ошибка компилятора

Вроде всё делаю правильно, но компилятор выдаёт ошибку.

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>

#include <RemoteXY.h>

// настройки соединения 
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

// конфигурация интерфейса   
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,2,0,0,0,10,0,6,5,1,
  7,21,12,6,39,10,2 };
   
// структура определяет все переменные вашего интерфейса управления 
struct {

    // input variable
  int16_t edit_1;  // −32767.. +32767

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;
#pragma pack(pop)
//===========================
void setup() 
{
  RemoteXY_Init ();     
}
//==========================
void loop() 

  RemoteXY_Handler ();
   
int val = atoi (RemoteXY.edit_1);
}

Ошибка:

sketch_apr02a.ino: In function 'void loop()':
sketch_apr02a.ino:40:33: error: invalid conversion from 'int16_t {aka int}' to 'const char*' [-fpermissive]
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:26:0,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:26,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.h:36,
                 from sketch_apr02a.ino:4:
c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdlib.h:274:12: error:   initializing argument 1 of 'int atoi(const char*)' [-fpermissive]
extern int atoi(const char *__s) __ATTR_PURE__;
            ^
invalid conversion from 'int16_t {aka int}' to 'const char*' [-fpermissive]

Что не так ? Не догоняю. Помогите.

2

Re: Поле ввода, Ошибка компилятора

Зачем вы хотите число в число преобразовать? Функция atoi работает со строками, вам про это и сказал компилятор.

3

Re: Поле ввода, Ошибка компилятора

Ещё раз прочитал документацию и не понял что не так. Я не пытаюсь преобразовать число,
я пытаюсь записать целое число из "Поля ввода" в переменную "val",
как описано в документации "int val = atoi (RemoteXY.edit_1);"
Если не сложно подскажите что я делаю не так.

4

Re: Поле ввода, Ошибка компилятора

Спасибо. Я допёр, вот я валенок smile