我有一个8字符的字符串,但我正在尝试导入到我的Arduino项目中的WAV文件。我声明就像这样
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;
}
答案 0 :(得分:0)
如果这是一个行长问题,那么你可以分解这样的字符串:
const unsigned char sounddata_data[] PROGMEM = "€€[fill these brackets "
"in with 6500 "
"other chars]";