Esempio n. 1
0
int main(void)
{
   	short bandera = 0;			  //valores de bandera 0, 1, o 2
	
	ssi_init(); 				  //inicializa codec
    		
	for(;;) 
	{

		switch(bandera)
		{
			case 0 : ptr_buffer = buffer_in0;
					 break;
			case 1 : ptr_buffer = buffer_in1;
					 break;
			case 2 : ptr_buffer = buffer_in2;
					 break;
			default: break;
		}												   
		
		ptr_fin = ptr_buffer + S;
		
		while(ptr_buffer < ptr_fin);

		bandera++;
		bandera = bandera % 3;
	}  
}
Esempio n. 2
0
/*************************************************************************************************
 * ethernet_task
 *
 * Ethernet task, manages the interface, runs only once
 */
static portTASK_FUNCTION( ethernet_task, pvParameters )
{
	static const gpio_map_t MACB_GPIO_MAP =
	{
		{EXTPHY_MACB_MDC_PIN,     EXTPHY_MACB_MDC_FUNCTION   },
		{EXTPHY_MACB_MDIO_PIN,    EXTPHY_MACB_MDIO_FUNCTION  },
		{EXTPHY_MACB_RXD_0_PIN,   EXTPHY_MACB_RXD_0_FUNCTION },
		{EXTPHY_MACB_TXD_0_PIN,   EXTPHY_MACB_TXD_0_FUNCTION },
		{EXTPHY_MACB_RXD_1_PIN,   EXTPHY_MACB_RXD_1_FUNCTION },
		{EXTPHY_MACB_TXD_1_PIN,   EXTPHY_MACB_TXD_1_FUNCTION },
		{EXTPHY_MACB_TX_EN_PIN,   EXTPHY_MACB_TX_EN_FUNCTION },
		{EXTPHY_MACB_RX_ER_PIN,   EXTPHY_MACB_RX_ER_FUNCTION },
		{EXTPHY_MACB_RX_DV_PIN,   EXTPHY_MACB_RX_DV_FUNCTION },
		{EXTPHY_MACB_TX_CLK_PIN,  EXTPHY_MACB_TX_CLK_FUNCTION}
	};

	gpio_enable_module(MACB_GPIO_MAP, sizeof(MACB_GPIO_MAP) / sizeof(MACB_GPIO_MAP[0]));

	ethernet_init_LwIP();

	httpd_init();

	ssi_init();

	/* Kill this task. */
	vTaskDelete(NULL);
}
Esempio n. 3
0
/**
 * @brief SSI thread main function
 * @param void * arg Thread arguments (NULL)
 * @return msg_t Thread messages
 */
msg_t ssi_main(void *arg)
{
	ssi_init();			// Initialize SSI Encoder
	uint32_t position;	// Position buffer
	
	// Thread main loop
	systime_t time = chTimeNow();
	while(1)
	{
		time = chTimeNow();
		if((ssi_mode == SSI_MODE_STREAM) && (encoder_power_state == ENCODER_ON))
		{
			time += US2ST(ssi_read_delay);
			position = ssi_read();	// Read SSI Encoder
			bt_send_position(position); // Send out encoder data via serial
			while(!bt_get_tx_state())
			{
				__asm__("NOP"); // Wait for position send to complete 
			}
			chThdSleepUntil(time);
		}
		else
		{
			chThdSleepMilliseconds(500);
		}
	}
}