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; } }
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; } }
void USBSendStr(char* data) { unsigned char i = 0; while(data[i]) USBSend(data[i++]); }