我在AVR Studio V4中有一个程序,代码如下:
#include <avr/pgmspace.h>
void nlcd_Putc(unsigned char c)
{
unsigned char i;
if (c>127) c=c-64;
for (i = 0; i < 5; i++ )
{
nlcd_SendByte(DATA_LCD_MODE,pgm_read_byte(&(nlcd_Font[c-32][i])));
}
nlcd_SendByte(DATA_LCD_MODE,0x00);
}
因此,当我想在MiKroC for AVR中运行此代码时,我会收到以下错误:
128 324表达式MyProject.c中未声明的标识符"pgm_read_byte"
我应该将标题avr/pgmspace.h
添加到用于AVR的MiKroc中吗?或者在用于AVR的MiKroc中与avr/pgmspace.h
等效的标题是什么?
非常感谢。
通过将这些代码添加到标题:
typedef signed char int8;
typedef unsigned char uint8;
typedef signed int int16;
typedef unsigned int uint16;
typedef signed long int int32;
typedef unsigned long int uint32;
//-----------------------
#define PGM_P char flash *
#define PROGMEM flash
#define const flash
#define PSTR(x) x
#define EEMEM eeprom
#define pgm_read_byte(x) (*((uint8 flash *)(x)))
#define pgm_read_word(x) (*((uint16 flash *)(x)))
#define pgm_read_float(x) (*((uint32 flash *)(x)))
#define pgm_read_byte_near(x) (*((uint8 flash *)(x)))