This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Data after callback ?

Dear Members,

How can i keep the data no being cut ?

before using call back function ,

after using call back function :

function :

call back from main :

 case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
					   //nrf_libuarte_async_tx(&libuarte, text2, text_size2);
				    //nrf_libuarte_async_tx(&libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
				    GPS_CallBack();

Call back and process function :

void	GPS_CallBack(void)
{
	
	GPS.LastTime=nrf_systick_val_get();
	
	

	if(GPS.rxIndex < sizeof(GPS.rxBuffer)-2)
	{
		GPS.rxBuffer[GPS.rxIndex] = GPS.rxTmp;
		GPS.rxIndex++;
		memcpy((void *)line_buffer_GPS, GPS.rxBuffer, GPS.rxIndex); 
	}
   nrf_libuarte_async_rx_free(&libuarte1, (uint8_t *)&GPS.rxTmp, 1);
	

}
//##################################################################################################################
void	GPS_Process(void)
{

	nrf_libuarte_async_tx(&libuarte, (uint8_t*)line_buffer_GPS, sizeof(line_buffer_GPS));
}	

What do I miss here ? a size of data ?

Thanks

I call GPS_process in main(void) :

while (true)
    {
			 
			 GPS_Process();
			 nrf_delay_ms(5000);
	}		 

Parents
  • Hi,

    Not sure I understand what you are asking. What are we looking at in the images? Is it the data in the buffer(s)? Output from UART? Something else?

    RixtronixLAB said:
    How to get systick ?

    There is a Blinky SysTick Example in the SDK, however this does not use the nrfx_systick_get() function. Did you init systick first?

    Best regards,
    Jørgen

  • Code 

     case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
    					   //nrf_libuarte_async_tx(&libuarte, text2, text_size2);
    				    nrf_libuarte_async_tx(&libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
    				    
    				    //GPS_CallBack();

    output :

    code :

    case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
    					   //nrf_libuarte_async_tx(&libuarte, text2, text_size2);
    				    //nrf_libuarte_async_tx(&libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
    				    
    				    GPS_CallBack();
    				    
    
    typedef struct 
    {
    	uint8_t		rxBuffer[1024];
    	uint16_t	rxIndex;
    	uint8_t		rxTmp;	
    	uint32_t	LastTime;	
    	
    	GPGGA_t		GPGGA;
    	
    }GPS_t;				    
    				    
    void	GPS_CallBack(void)
    {
    	
    	
    	GPS.LastTime=nrf_systick_val_get();
    	
    	
    	
    	
    	if(GPS.rxIndex < sizeof(GPS.rxBuffer)-2)
    	{
    	
    		GPS.rxBuffer[GPS.rxIndex] = GPS.rxTmp; 
    		GPS.rxIndex++;
    		memcpy((void *)line_buffer_GPS, GPS.rxBuffer, GPS.rxIndex); 
    	}
       nrf_libuarte_async_rx_free(&libuarte1, (uint8_t *)&GPS.rxTmp, 1);
    	 
    	
    	//DEBUG display on terminal :
    	
    	nrf_libuarte_async_tx(&libuarte, GPS.rxBuffer, sizeof(GPS.rxBuffer));

    Output :

Reply
  • Code 

     case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
    					   //nrf_libuarte_async_tx(&libuarte, text2, text_size2);
    				    nrf_libuarte_async_tx(&libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
    				    
    				    //GPS_CallBack();

    output :

    code :

    case NRF_LIBUARTE_ASYNC_EVT_RX_DATA:
    					   //nrf_libuarte_async_tx(&libuarte, text2, text_size2);
    				    //nrf_libuarte_async_tx(&libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length);
    				    
    				    GPS_CallBack();
    				    
    
    typedef struct 
    {
    	uint8_t		rxBuffer[1024];
    	uint16_t	rxIndex;
    	uint8_t		rxTmp;	
    	uint32_t	LastTime;	
    	
    	GPGGA_t		GPGGA;
    	
    }GPS_t;				    
    				    
    void	GPS_CallBack(void)
    {
    	
    	
    	GPS.LastTime=nrf_systick_val_get();
    	
    	
    	
    	
    	if(GPS.rxIndex < sizeof(GPS.rxBuffer)-2)
    	{
    	
    		GPS.rxBuffer[GPS.rxIndex] = GPS.rxTmp; 
    		GPS.rxIndex++;
    		memcpy((void *)line_buffer_GPS, GPS.rxBuffer, GPS.rxIndex); 
    	}
       nrf_libuarte_async_rx_free(&libuarte1, (uint8_t *)&GPS.rxTmp, 1);
    	 
    	
    	//DEBUG display on terminal :
    	
    	nrf_libuarte_async_tx(&libuarte, GPS.rxBuffer, sizeof(GPS.rxBuffer));

    Output :

Children
No Data
Related