Не компилируется скетч с ошибкой invalid conversion from 'byte* {aka unsigned char*}' to 'uint64_t

wamik
Offline
Зарегистрирован: 02.09.2018

Здравствуйте всем! Пишу здесь впервые, так что не ругайие если что не так оформил.

В общем есть скетч для работы радиомодулем NRF24L01.

/* В данном скетче с передающей части (ТХ) отправляется значение переменной counter,
 * переменная эта с каждым шагом увеличивается на единицу. Приёмник (RX) принимает
 * сигнал, и отправляет обратно то, что получил, используя функцию radio.writeAckPayload
 * То есть наш приёмник на одно мгновение становится передатчиком! Если наш передатчик (TX)
 * принимает ответный сигнал, он выдаёт то, что принял, и пишет посчитанное вермя между 
 * отправкой и приёмом сигнала в микросекундах. Данный скетч можно использовать для теста
 * модулей на качество связи, а также для понимания работы функции radio.writeAckPayload
 * by AlexGyver 2016
 */
 
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

RF24 radio(9,10); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"};  //возможные номера труб

void setup(){
  Serial.begin(9600); //открываем порт для связи с ПК
  radio.begin(); //активировать модуль
  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0,15);     //(время между попыткой достучаться, число попыток)
  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32);     //размер пакета, в байтах

  radio.openReadingPipe(1,address[0]);      //хотим слушать трубу 0
  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_1MBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!
  // ВНИМАНИЕ!!! enableAckPayload НЕ РАБОТАЕТ НА СКОРОСТИ 250 kbps!
  
  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль
}

void loop(void) {

    byte pipeNo, gotByte;                          
    while( radio.available(&pipeNo)){    // слушаем эфир со всех труб
      radio.read( &gotByte, 1 );         // чиатем входящий сигнал
      radio.writeAckPayload(pipeNo,&gotByte, 1 );  // отправляем обратно то что приняли
      Serial.print("Recieved: "); Serial.println(gotByte); 
   }
}

При компиляции выдает такую ошибку 


C:\Users\djadiv\Desktop\RX_time\RX_time.ino: In function 'void setup()':

C:\Users\djadiv\Desktop\RX_time\RX_time.ino:28:36: warning: invalid conversion from 'byte* {aka unsigned char*}' to 'uint64_t {aka long long unsigned int}' [-fpermissive]

   radio.openReadingPipe(1,address[0]);      //хотим слушать трубу 0

                                    ^

In file included from C:\Users\djadiv\Desktop\RX_time\RX_time.ino:13:0:

C:\Users\djadiv\Documents\Arduino\libraries\RF24-master/RF24.h:350:8: note: initializing argument 2 of 'void RF24::openReadingPipe(uint8_t, uint64_t)'

   void openReadingPipe(uint8_t number, uint64_t address);

        ^

Скетч использует 3354 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 251 байт (12%) динамической памяти, оставляя 1797 байт для локальных переменных. Максимум: 2048 байт.

 

Я не знаю языка C, возможно это связано с тем, я неправильно подключил библиотеки для работы с NRF24L01

 

b707
Offline
Зарегистрирован: 26.05.2017

это код не от этой библиотеки. Эта библиотека требует числовой адрес трубы, а вы задаете строку

wamik
Offline
Зарегистрирован: 02.09.2018

я удалил (другую/старую/непонятную) библиотеку из Мои документы NRF24L01, теперь заработал