Ejemplo n.º 1
0
int main(void)
{
	int i;		
	unsigned char add[5]={110,110,8,110,110};
  /*!< At this stage the microcontroller clock setting is already configured to 
       120 MHz, this is done through SystemInit() function which is called from
       startup file (startup_stm32f2xx.s) before to branch to application main.
       To reconfigure the default setting of SystemInit() function, refer to
       system_stm32f2xx.c file
     */
  
#ifdef SERIAL_DEBUG
  DebugComPort_Init();
#endif
  
	initLED();
	init_Timer();
	//while(1);
	
  /*Initialize LCD and Leds */ 
  //LCD_LED_Init();
	
	delay_ms(500);				
	
	for(i=0;i<100;i++)
	{
		setNumber(i);
		delay_ms(10);				
	}
	beep(40);
	offSegment(3);
	delay_ms(100);
	setNumber(0);
	delay_ms(100);
	beep(40);
	offSegment(3);
	delay_ms(100);
	setNumber(0);
	delay_ms(100);
	beep(40);
	
	//USART2_Init();
	//USART3_Init();
	
	init_NRF1_IO();
	init_NRF2_IO();
	SPI1_Config();
	SPI3_Config();
	SPI_Cmd(SPI1, ENABLE);
	SPI_Cmd(SPI3, ENABLE);
	
  nrf24l01_initialize_debug(false, TX_PAYLOAD_SIZE, false);
	nrf24l01_clear_flush();
	add[2]=8;
	nrf24l01_set_tx_addr(add , 5);
	add[2]=30;
	nrf24l01_set_rx_addr(add,5,0);
	nrf24l01_set_rf_ch(tx_channel);


	nrf24l02_initialize_debug(false, RX_PAYLOAD_SIZE, false);	
 	nrf24l02_clear_flush();
	add[2]=8;
	nrf24l02_set_tx_addr(add , 5);
	add[2]=30;
	nrf24l02_set_rx_addr(add,5,0);	
	nrf24l02_set_rf_ch(rx_channel);
	nrf24l02_set_as_rx(true);		
	
  /* configure ethernet */ 
  ETH_BSP_Config();
    
  /* Initilaize the LwIP stack */
  LwIP_Init();
  
  /* UDP echoserver */
  udp_echoserver_init();
  
    
  /* Infinite loop */
  while (1)
  {  
    /* check if any packet received */
					
    if (ETH_CheckFrameReceived())
    {
      /* process received ethernet packet */
      LwIP_Pkt_Handle();
    }
    /* handle periodic timers for LwIP */
    LwIP_Periodic_Handle(LocalTime);
		
		process_incoming_rf();
		
		if(firstPacketRecieved==0)
		{
			demo();
			setNumber(22);			
		}
							
  }   
}
Ejemplo n.º 2
0
int main (void)
{
  setvbuf(stdin, NULL, _IONBF, 0);
  setvbuf(stdout, NULL, _IONBF, 0);
  setvbuf(stderr, NULL, _IONBF, 0);

  //Driver initialization
  ds_systick_init();
  ds_delay_init();
  ds_uart_init();
  ds_rtc_init();
  ds_i2c1_init();
  ds_nordic_init();
  ds_therm_init();

  if (SysTick_Config(SystemCoreClock / 1000))
    while (1);

  //Initialize the nordic library
  nrf24l01_initialize_debug(false, 32, true);

  //Clear queues and interrupts
  //Need to fill txdata[] with our data
  nrf24l01_clear_flush();
  char rxdata[32];
  char txdata[32];
  // txdata[0] = 'h';
  // txdata[1] = ' ';
  // txdata[2] = 't';
  // txdata[3] = 'i';
  // txdata[4] = 'm';

  float temp = 0;

  int i;
  // for (i = 5; i < 30; i++) {
  //   txdata[i] = '!';
  // }

  // txdata[30] = '\n';
  // txdata[31] = '\0';
  
  
  while (1) {
    for (i = 0; i < 5000; i++) {
      ds_delay_uS(1000);  
    }
    temp = ds_therm_read_degC(ds_read_therm());
  sprintf(txdata, "%f\n", temp);
  nrf24l01_write_tx_float(&temp, 32, true);
  
  
  while(!(nrf24l01_irq_pin_active() && (nrf24l01_irq_tx_ds_active() || nrf24l01_irq_max_rt_active()))); 


  //Confirms acknowledge
  //if (!nrf24l01_irq_max_rt_active()) {
  //  nrf24l01_irq_clear_all();
  //  nrf24l01_set_as_rx(true);
  //}
  //else {
  //  nrf24l01_flush_tx(); //get the unsent character out of the TX FIFO
  //  nrf24l01_irq_clear_all(); //clear all interrupts
  //  printf("Node: Failed to send %c\n",txdata);
  //} 
  

  //Waits for data and reads it
  //while(!(nrf24l01_irq_pin_active() && nrf24l01_irq_rx_dr_active()));
  //nrf24l01_read_rx_payload(rxdata, 32);
  nrf24l01_irq_clear_all();
  

  //printf(rxdata);
  }
  
  //puts into transmit mode - not needed for base station
  ds_delay_uS(130);
  nrf24l01_set_as_tx();
}