| 
	
	|  |  |  
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| PannetierJ 
 
 
 Joined: 18 Jun 2017
 Posts: 31
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Fri Jul 14, 2017 6:17 am |   |  
				| 
 |  
				| Hello guys , 
 I received my pics. I replaced my receiver by 18LF2520 and transmitter by 18LF2550.
 It's LF now.
 I have the same result.
 I receive nothing....
 Is it a problem of SPI config ?
 |  |  
		|  |  
		| PannetierJ 
 
 
 Joined: 18 Jun 2017
 Posts: 31
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Fri Jul 14, 2017 7:09 am |   |  
				| 
 |  
				| Hi PCM, 
 You're right.
 
 I had have an extra call to RF24_RX_SET().
 I deleted this .
 
 I catch the return of my function RF24_RX_SET() :
 And I have an error : number 2
 
 code of main prog :
 
 
  	  | Code: |  	  | #include <18F2520.h>  //18LF2520 is using
 #DEVICE *=16    /*ICD=TRUE*/ PASS_STRINGS=IN_RAM /*HIGH_INTS=TRUE*/   //Admite ponteiros para constantes
 
 #fuses HS,NOWDT,NOLVP
 #use delay(clock=16000000)
 #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,ERRORS)
 //#use SPI(SPI2,MASTER,BAUD=1000000, MODE=0,BITS=8,MSB_FIRST,STREAM=STREAM_SPI2)
 
 
 #define RF24_SPI_DISABLE_WARNING  //for disabling nRF24 SPI warning message.
 
 
 
 //********** DEFINE PORT NAMES
 #define  SPI_MISO       PIN_B0   //SPI(Usar por hardware quando possivel)
 #define  SPI_MOSI       PIN_B3   //SPI(Usar por hardware quando possivel)
 #define  SPI_CLK        PIN_B1   //SPI(Usar por hardware quando possivel)
 
 //Driver nRF24L01P.C
 #define  RF24_IRQ       PIN_B2   //interrupcao nRF24L01+
 #define  RF24_CS        PIN_C1   //chipselect nRF24L01+
 #define  RF24_CE        PIN_C2   //chipEnable nRF24L01+
 #define  RF24_PERFORMANCE_MODE   //performance mode ON
 #define  RF24_SPI       STREAM_SPI2//Redirects SPI2 port to RS24_SPI stream
 
 //#use SPI(MASTER,DI=SPI_MISO,DO=SPI_MOSI,CLK=SPI_CLK,BAUD=1000000,MODE=0,BITS=8,MSB_FIRST,STREAM=RF24_SPI)
 //#use SPI(MASTER,SPI1, BAUD=1000000,MODE=0,BITS=8,MSB_FIRST,STREAM=RF24_SPI)
 #use SPI(MASTER,DI=SPI_MISO,DO=SPI_MOSI,CLK=SPI_CLK,BAUD=1000000,MODE=0,BITS=8,MSB_FIRST,STREAM=STREAM_SPI2)
 
 //INCLUDES_2   -  Drivers
 #include <nRF24L01P.C>           //Driver nRF24L01+   Single Chip 2.4GHz Transceiver Driver
 
 
 //INCLUDES_3
 #include <STDLIB.H>
 
 
 void main()
 {
 int RXbuffer1[11];
 int RXdatasize, RXpipe;
 int i;
 int Result;
 printf("Initialisation of system in progress\r\n");
 RF24_initPorts();
 
 RF24_default_config();
 
 Result=RF24_RX_SET();       //Receiver on
 if(Result==1)
 printf("Config RX Ok\r\n");
 else
 {
 printf("Config RX KO\r\n");
 printf(" Result : %d\r\n",Result);
 }
 
 printf("Initialisation of system\r\n");
 
 while(true) {
 
 while( RF24_RX_getbuffer(&RXpipe, &RXdatasize, RXbuffer1)!=true );
 
 printf("Number of bytes received = %u \n\r",RXdatasize);
 for(i=0;i<RXdatasize;i++)
 printf("%c",RXbuffer1[i]);
 printf("\n\r");
 
 }
 }
 
 
 
 | 
 
 And into the function RF24_RX_SET() :
 
 
  	  | Code: |  	  | int RF24_RX_SET() {    //Enhanced ShockBurst receiving payload(return 1 if ok, return other number if error)
 int i,data;
 
 i = RF24_comm_in(R_REGISTER|FIFO_STATUS);
 if ((i&RX_FULL)==RX_FULL) return 0;                 //Error: RX FIFO buffer full flag, must be read before receive new packets(REVISION 1.1)
 //
 data = RF24_comm_in(R_REGISTER|CONFIGURATION);
 if ((data&PWR_UP)!=PWR_UP) return 0x02;   //Error: Turn PWR_UP on before transmit
 data|=PRIM_RX;                            //1. Select RX by setting the PRIM_RX bit in the CONFIG register to high.
 RF24_comm(W_REGISTER|CONFIGURATION, data);
 /*
 All data pipes that receive
 data must be enabled (EN_RXADDR register), enable auto acknowledgement for all pipes running
 Enhanced ShockBurst (EN_AA register), and set the correct payload widths (RX_PW_Px registers).
 Set up addresses as described in item 2 in the Enhanced ShockBurst transmitting payload
 example above.
 */
 RF24_enable();             //2. Start Active RX mode by setting CE high.
 //                         //3. After 130µs nRF24L01+ monitors the air for incoming communication.
 /*4. When a valid packet is received (matching address and correct CRC), the payload is stored in the
 RX-FIFO, and the RX_DR bit in STATUS register is set high. The IRQ pin is active when RX_DR is
 high. RX_P_NO in STATUS register indicates what data pipe the payload has been received in.
 5. If auto acknowledgement is enabled, an ACK packet is transmitted back, unless the NO_ACK bit
 is set in the received packet. If there is a payload in the TX_PLD FIFO, this payload is added to
 the ACK packet.*/
 //RF24_disable();          //6. MCU sets the CE pin low to enter standby-I mode (low current mode).
 //                         //7. MCU can clock out the payload data at a suitable rate through the SPI.
 //                         //8. nRF24L01+ is now ready for entering TX or RX mode or power down mode.
 return true;               //Success
 }//
 
 | 
 
  |  |  
		|  |  
		|  |  
  
	| 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 |