¿Necesita ayuda para programar un NXTBee en un NXT Lego Mindstorm Robot?

1

Estoy haciendo un proyecto de trabajo usando el NXTBee NXT controlado por un arduino. Pero soy un novato con la programación. Estoy usando ROBOTC y cuando compilo obtengo un error: El procedimiento de llamada 'nxtReadRawHS' con niveles indirectos no coinciden. Parámetro: 'unsigned ubyte * pData. Expresión: 'incomingData'. Escribe: 'ubyte' . Sé que necesito una biblioteca .h pero cuando intento instalar una desde otro programa, todavía está mal. Si alguien me puede ayudar por favor ayuda. Gracias

El código comienza aquí:

#pragma platform(NXT)

int power = 0; // Global variable for power.
int steer = 0; // Global variable for steering.
//int direc = 0; // Global variable for direciton.

void setupHighSpeedLink()
{
    // Initialize port S4 to “high speed” mode.
    nxtEnableHSPort();
    nxtSetHSBaudRate(9600);
    nxtHS_Mode = hsMsgModeMaster;
    return;
}

void ReadResponse()
{
    byte BytesRead[3]; // Array we’ll be reading into.
    nxtReadRawHS(BytesRead[0], 3); // Read the array.

    if(BytesRead[0] == '/') { // If we catch the null, read the next three things.
        power = BytesRead[1]-70; // -70 is left, 70 is right
        steer = BytesRead[2]-100; // -100 is Back, 100 is forward
        //direc = BytesRead[3]; // “0? is forward, “1? is reverse.
    }
}
    
pregunta Ej Hanneman

1 respuesta

2

El error específico del compilador que está recibiendo es el siguiente: está pasando BytesRead[0] como primer parámetro a nxtReadRawHS() , que es un byte , pero el compilador le dice que la función espera un ubyte * (un puntero o una dirección) en esa posición.

Cambie el primer argumento a BytesRead o &BytesRead[0] ; ambas expresiones representan la dirección del primer byte en la matriz.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas