Problemas con la programación del microcontrolador
#include#include#defineMODE0//Cuando MODE=1, es el código de envío. Cuando MODE=0, es el código de recepción typedefunsignedcharuchar; *********** *************************Definición de puerto IO************ ************ ****************sbitMISO=P2^3;sbitMOSI=P2^2;sbitSCK=P2^1; ; sbitCSN=P2^0; sbitIRQ=P3^2 ;sbitled=P1^2; //******************************; ************* ************************************* ***********ucharbdatasta ; //Indicador de estado sbitRX_DR=sta^6; sbitTX_DS=sta^5; **************** *************************NRF24L01********* ********************* ********#defineTX_ADR_WIDTH5//5uintsTXaddresswidth#defineRX_ADR_WIDTH5//5uintsRXaddresswidth#defineTX_PLOAD_WIDTH32//32uintsTXpayload#defineRX_PLOAD_WIDTH32//32uintsTXpayloaducharconstTX_ADDRESS[ TX_ADR_WIDTH]={0x 34, 0x43, 0x10, 0x10, 0x01}; // Dirección local ucharconstRX_ADDRESS[ Dirección de recepción, 0x22,0x33,0xaa,0xbb,0x11,0x22,0x33,0xaa,0xbb,0x11,0x22,0x33,0xaa ,0xbb,0x11,0x22,0x33,0xee,0xff}; //Enviar datos ucharRx_Buf[RX_PLOAD_WIDTH];/ /Recibir datos//********************* **********************Comando de registro NRF24L01*** *********************** ************************** **#defineREAD_REG0x00 //Leer el comando de registro #defineWRITE_REG0x20 //Escribir el comando de registro #defineRD_RX_PLOAD0x61 //Leer recibir comando de datos #defineWR_TX_PLOAD0xA0 // Escribe los datos que se enviarán comando #defineFLUSH_TX0xE1 // Vacía el comando FIFO de envío #defineFLUSH_RX0xE2 // Vacía el comando FIFO de recepción #defineREUSE_TX_PL0xE3//Define la instrucción de carga repetida de datos #defineNOP0
xFF//Reservado//************************************Dirección de registro SPI(nRF24L01)* * ************************************************** *#defineCONFIG0x00//Configurar el estado del transceptor, el modo de verificación CRC y el modo de respuesta del estado del transceptor #defineEN_AA0x01//Configuración de la función de respuesta automática #defineEN_RXADDR0x02//Configuraciones de canales disponibles #defineSETUP_AW0x03//Configuración del ancho de la dirección del transceptor #defineSETUP_RETR0x04//Configuración de la función de retransmisión automática #defineRF_CH0x05 //Configuración de frecuencia de trabajo #defineRF_SETUP0x06//Configuración de función de tasa de transmisión, consumo de energía #defineSTATUS0x07//Registro de estado #defineOBSERVE_TX0x08//Función de monitoreo de envío #defineCD0x09//Detección de dirección #defineRX_ADDR_P00x0A//Canal 0 dirección de recepción de datos #defineRX_ADDR_P10x0B// Canal 1 dirección de recepción de datos #defineRX_ADDR_P20x0C // Dirección de recepción de datos del canal 2 # defineRX_ADDR_P30x0D // Dirección de recepción de datos del canal 3 # defineRX_ADDR_P40x0E // Dirección de recepción de datos del canal 4 # defineRX_ADDR_P50x0F // Dirección de recepción de datos del canal 5 # defineTX_ADDR0x10 // Registro de dirección de transmisión # defineRX_PW_P00x11 // Recibir canal 0 Recibir Longitud de datos #definierx_pw_p10x12 // Recibe canal 0 Longitud de datos de recibir #definiterx_pw_p20x13 // Recibe canal 0 Recibir Longitud de datos #definierx_pw_p30x14 // canal de recibir 0 recibo longitud de datos #definiterx_p40x15 // Recibe canal 0 Recibir longitud de datos #definiterx_pw_p50x16 ///////////////// Recibir canal 0 recibir longitud de datos #defineFIFO_STATUS0x17 //Configuración del registro de estado de entrada y salida de pila FIFO/*************************** ******* *************Función de retardo****************************** ****** *************************///Retraso largo voidDelay(unsignedints){unsignedinti,j;for(i=0; ilt;1000;i)para (j=0;j