It would roughly look like this:
Code:
void nRF_poll_store_data(void)
{
static uint8_t state,delay_counter;
switch(state)
{
case 0:if (need_to_send)
{
mirf_set_TADDR((uint8_t *)T_add);
mirf_set_RADDR((uint8_t *)T_add);
mirf_send((uint8_t *)"Hello",8);
hl_ack = 0;
fl_data = 0;
need_to_send=0;
state=1;
}
break;
case 1:if (hl_ack == 1)
{
mirf_set_RADDR((uint8_t *)MyAdd);
delay_counter=10;
state=2;
}
break;
case 2:delay_counter-=1;
if (delay_counter==0)
{
state=3;
}
break;
case 3:if (fl_data == 1)//if data arrived
{
mirf_config_register(STATUS,(1<<RX_DR));
mirf_get_data((uint8_t *)buffer);
buffer[8] = '\0';
store_block_eeprom((uint8_t *)buffer);
state=0;
}
break;
}
|