【发布时间】:2015-11-17 14:19:15
【问题描述】:
编译时出现此错误,但我找不到问题。
../DB.c:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PatKarten'
这是一些代码:
const uint8_t PatKarten[29][16] PROGMEM =
{
// 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
//0xd3
{ 65 , 66 , 1 , 2 , 3 , 4 , 5 , 6 , 0xdd , 7 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 01
{ 65 , 66 , 7 , 2 , 3 , 4 , 5 , 6 , 1 , 0xd8 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 02
{ 65 , 66 , 1 , 8 , 9 , 10 , 11 , 12 , 0xd1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 03
{ 65 , 66 , 13 , 14 , 15 , 16 , 9 , 13 , 14 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 04
{ 65 , 66 , 1 , 7 , 9 , 17 , 12 , 18 , 19 , 17 , 18 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 05
{ 65 , 66 , 1 , 12 , 9 , 20 , 1 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 06
{ 65 , 66 , 1 , 21 , 7 , 22 , 21 , 7 , 8 , 23 , 0xfc , 7 , 23 , 0 , 0 , 0 }, // Karte Nr. 07
{ 65 , 66 , 1 , 24 , 20 , 25 , 22 , 17 , 23 , 26 , 5 , 27 , 21 , 10 , 25 , 0 }, // Karte Nr. 08
{ 65 , 66 , 25 , 20 , 21 , 17 , 28 , 29 , 30 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, // Karte Nr. 09
{ 31 , 32 , 33 , 34 , 35 , 0xc8 , 0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0e0 , 0x00 , 0x00 , 0 }, // Karte Nr. 10
{ 64 , 36 , 37 , 38 , 39 , 0xbc , 0 , 0 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 0 }, // Karte Nr. 11
{ 64 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 0xf4 , 0 , 0 }, // Karte Nr. 12
{ 64 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , 0xfd , 0x00 , 0x00 }, // Karte Nr. 13
{ 64 , 39 , 46 , 36 , 48 , 55 , 61 , 62 , 33 , 57 , 38 , 63 , 0x50 , 0xff , 0x00 , 0x00 }, // Karte Nr. 14
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 15
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 16
{ 0 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 0x00 , 0x00 }, // Karte Nr. 17
{ 0 , 48 , 49 , 50 , 51 , 53 , 54 , 55 , 56 , 0xef , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 18
{ 0 , 69 , 70 , 71 , 58 , 0xbf , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 19
{ 0 , 7 , 21 , 32 , 42 , 53 , 60 , 0xef , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 20
{ 0 , 47 , 48 , 55 , 57 , 40 , 55 , 0xef , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 21
{ 0 , 65 , 18 , 49 , 52 , 0xaa , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 22
{ 0 , 8 , 32 , 50 , 54 , 0xbf , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 23
{ 0 , 57 , 58 , 15 , 51 , 56 , 59 , 0xef , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 24
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 25
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 26
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 27
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }, // Karte Nr. 28
{ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 } // Karte Nr. 29
};
在其他线程中,我只看到缺少分号,但我认为我不需要任何分号。
我在 Atmega 8535 上使用 AVRStudio 4、AVR-GCC 4.3.3 进行编程。
【问题讨论】:
-
我猜你做了
#include <stdint.h>...否则真正的错误可能在第14行之前(很长)...寻找丢失的,;},也寻找丢失的#endif -
我在主 c 模块中做了 #include
。此代码短语来自另一个 c 模块,我在此处复制的行是该模块中出现错误的第一行。我是 Atmel 编程和 AVR 工作室的新手。所以我会听取你的建议并证明代码。 -
其他问题:为什么在标题中写“ProgDB”而错误消息指向“PatKarten”?这是否重要/相关?
-
您必须在每个使用
uint8_t的模块中包含<stdint.h>。代码似乎在uint8_t之后出现了问题,所以这可能是您的问题。但是正如@MikeD 所说,错误可能是您在问题中未显示的其他问题。编译器试图尽可能多地考虑语法的多种可能性,有时它会在放弃之前走得很远。 -
在我
#include <avr/pgmspace.h>在这个 c 文件中之后,错误消失了。但是现在我遇到了其他一些错误。我不知道先行者在这里做了什么-.-