При объявлении звуковой строки зависает компилятор Arduino - PullRequest
0 голосов
/ 10 марта 2012

У меня есть строка символов из 8, но файл WAV , который я пытаюсь импортировать в мой проект Arduino.Я заявляю это так:

const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets in with 6500 other characters]";

Когда я пытаюсь запустить этот код, компилятор не выдает мне ошибок.Он просто зависает и никогда не завершает компиляцию.Я знаю, что это эта строка, потому что, если я объявляю это более короткой строкой или другими типами объявлений (например, ставим запятые между каждым символом), это работает.

Есть ли ограничение длины строки в коде Arduino, которое меня останавливает?

Если мне нужно просто принять это и поставить запятые между каждым символом, есть ли хороший метод?

Я всегда мог бы написать простую программу для этого, но у меня есть несколько звуковфайлы для конвертации, и я хочу, чтобы код легко и просто читался.

Редактировать

В итоге я просто написал программу.Он преобразует каждый байт данных в int, разделенных запятыми.Меня все еще беспокоит, что старый способ не сработает, и таким образом он займет больше времени, но, по крайней мере, у меня есть кое-что, чтобы вернуться к

#include <stdio.h>
int main(int argc, char *argv[]) {
    FILE *r, *w;
    unsigned char ch;
    r = fopen(argv[1], "rb");
    w = fopen("out.txt", "w");
    while (fscanf(r, "%c", &ch) != EOF) {
        fprintf(w, "%d, ", (int)ch);
    }
    return 1;
}

1 Ответ

0 голосов
/ 10 марта 2012

Если это проблема длины строки, вы можете разбить строки следующим образом:

const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets "
                                               "in with 6500 "
                                               "other chars]";
...