2015-12-20 7 views
0

У меня есть программа в AVR Studio V4 со следующим кодом:добавить функцию pgm_read_byte AVR Studio для MiKroc (Electronica)

#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 для AVR я получаю следующее сообщение об ошибке :

128 324 Undeclared identifier 'pgm_read_byte' in expression MyProject.c

Должен ли я добавить заголовок avr/pgmspace.h для MiKroc для AVR, или то, что является эквивалентом заголовок avr/pgmspace.h в Mikroc для AVR?

Большое спасибо.

ответ

0

от addinf этого коды для заголовка:

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)))