Ардуино Мега 2560 ОсциллографLinux

Anonymous
Ардуино Мега 2560 Осциллограф

Сообщение Anonymous »

Я пытаюсь сделать небольшой осциллограф на плате Arduino Mega 2560. В следующем фрагменте кода клиента ПК есть функция, которая обрабатывает полученные байты данных из образцов платы. При отображении они верны, но записаны в текстовом файле неправильно. Вместо этого в текстовом файле есть возрастающие числа от 1 до огромного значения. В чем проблема с fprintf?

Код: Выделить всё

void receive_data(int fd, const char *filename, int num_channels, int mode) {
FILE *file = fopen(filename, "w");
if (!file) {
perror("Errore nell'apertura del file");
return;
}
uint8_t buffer[MAX_BUFFER_SIZE];
int bytes_per_sample = num_channels * 3; // 1 byte di sincronizzazione + 2 bytes per canale
int buffer_offset = 0;
time_t start_time = time(NULL);
//unsigned int sample_count = 0; // Contatore dei campioni

printf("Campionamento in corso per 10 secondi...\n");

while (time(NULL) - start_time < 10) {
int bytes_read = read(fd, buffer + buffer_offset, sizeof(buffer) - buffer_offset);
if (bytes_read > 0) {
bytes_read += buffer_offset;
int i = 0;
while (i 

Подробнее здесь: [url]https://stackoverflow.com/questions/79034227/arduino-mega-2560-oscilloscope[/url]

Вернуться в «Linux»