【发布时间】:2012-03-10 09:00:04
【问题描述】:
我有一串来自 8 的字符,但我正在尝试将 WAV 文件导入到我的 Arduino 项目中。我这样声明
const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets in with 6500 other characters]";
当我尝试运行此代码时,编译器不会给我任何错误。它只是挂起并且永远不会完成编译。我知道这是这一行,因为如果我用较短的字符串或其他类型的声明(例如在每个字符之间放置逗号)声明它,它就可以工作。
Arduino 代码中是否存在阻止我的行长限制?
如果我必须接受这一点并在每个字符之间加上逗号,有什么好的方法吗?
我总是可以编写一个简单的程序来执行此操作,但我有许多声音文件要转换,我想让阅读代码变得容易和简单。
编辑
我最终只是编写了程序。它将每个数据字节转换为以逗号分隔的ints。旧方法行不通仍然让我感到困扰,这样会花费更多时间,但至少我有一些可以依靠的东西
#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;
}
【问题讨论】:
标签: c string audio arduino wav