Witam,
próbuje skorzystać z pamięci programu do przechowywania tablicy stałych.
Środowisko: WinAVR-20090313, VMLAB 3.14, atmega88. Fragment mojego kodu:
Podczas kompilacji otrzymuje ostrzeżenia:
Takich par ostrzeżeń otrzymuje n-1, gdzie n - ilość użyć makra pgm_read_byte.
Próbowalem zmieniac sposób zapisu adresu bajtu do odczytania, zadeklarowałem też drugą tablice i próbowałem odczytywać do innej zmiennej - efekt ten sam.
Korzystałem z internetowych tutoriali i wyglądało, że powinno być bezproblemowo.
Przy obsłudze EEpromu nie ma problemu.
Do tej pory tablicę tę deklarowałem standardowo, czyli umieszczana była w SRAMie i program działał.
W czym zatem może być problem?
próbuje skorzystać z pamięci programu do przechowywania tablicy stałych.
Środowisko: WinAVR-20090313, VMLAB 3.14, atmega88. Fragment mojego kodu:
...
#include <avr/pgmspace.h> //obsługa pamięci programu
...
uint8_t kod[] PROGMEM = {2,3,6,2,1,0xff};
...
int main(void)
{
...
while(1)
{
....
kod_element = pgm_read_byte(kod+przycisk_licz);
....
kod_element = pgm_read_byte(&kod[przycisk_licz]);
...
}
}Podczas kompilacji otrzymuje ostrzeżenia:
Cytat:Repeated variable name __result within block. Rename it
Repeated variable name __addr16 within block. Rename it
Takich par ostrzeżeń otrzymuje n-1, gdzie n - ilość użyć makra pgm_read_byte.
Próbowalem zmieniac sposób zapisu adresu bajtu do odczytania, zadeklarowałem też drugą tablice i próbowałem odczytywać do innej zmiennej - efekt ten sam.
Korzystałem z internetowych tutoriali i wyglądało, że powinno być bezproblemowo.
Przy obsłudze EEpromu nie ma problemu.
Do tej pory tablicę tę deklarowałem standardowo, czyli umieszczana była w SRAMie i program działał.
W czym zatem może być problem?
