示例#1
0
void AdcUsbReadBuffer()
{
	if(g_adc_cur_read_pos>=g_ResultBufferSize)
	{
		AdcReadBufferComplete();
		return;
	}

	uint32_t* buffer = g_resultBufferCopy;

	uint32_t sz = g_ResultBufferSize - g_adc_cur_read_pos;
	//const uint32_t max_elements = VIRTUAL_COM_PORT_DATA_SIZE/sizeof(buffer[0]);
	const uint32_t max_elements = VIRTUAL_COM_PORT_DATA_SIZE/sizeof(buffer[0])/2; //BUGFIX Чтото не понимаю в USB

	uint32_t to_send = sz>max_elements?max_elements:sz;

	USBAdd((uint8_t*)(buffer+g_adc_cur_read_pos), to_send*sizeof(buffer[0]));
	g_adc_cur_read_pos+=to_send;

	USBSend();

	if(g_adc_cur_read_pos>=g_ResultBufferSize)
	{
		AdcReadBufferComplete();
		return;
	}
}
示例#2
0
void PacketReceive(volatile uint8_t* data, uint32_t size)
{
	uint8_t command = data[0];
	data++;
	size--;

	switch(command)
	{

	case 3://COMMAND_SET_FREQ
		OnSetFreq(*(uint32_t*)(data+0));
		return;

	case 0://COMMAND_NONE
	default:
		USBAdd8(command);
		USBAdd32(size);
		USBSend();
		break;
	}

}
示例#3
0
void USBSendStr(char* data) {
    unsigned char i = 0;
    while(data[i])
        USBSend(data[i++]);
}