RTV forum PL | NewsGroups PL

Jak zadeklarować tablice w PROGMEM na ATmega 128 z WinAVR i rozwiązać błędy?

PROGMEM nie działa :/ (WinAVR + ATMega)

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zadeklarować tablice w PROGMEM na ATmega 128 z WinAVR i rozwiązać błędy?

Michał K.
Guest

Wed Mar 14, 2007 3:49 pm   



Witam wszystkich
Chcę zadeklarować tablice w pamięci programu w ATmega 128. Program piszę w C
pod WinAVR 20070122 (chyba najnowszym).

Robie to tak:
#include <progmem.h>
const char PROGMEM *s = "jakis napis";
lub przez static
static unsigned char PROGMEM ascii[] = {0x00,0x00,0x00 };

Oba przykłady z Googli. Dostaje takie komunikaty błedów:

simple.c:5:21: error: progmem.h: No such file or directory
simple.c:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before
'*' token
simple.c:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before
'ascii'

Jak widać nie widzi biblioteki progmem. Tu mam pytanie, czy coś w nowszej
wersji kompilatora pozmieniali, by go zbliżyć do czystego C, tak jak to było
z niektórymi poleceniami ustawiającymi pojedyńcze bity? Przeszukałem folder
WinAVR i nie znalazłem pliku progmem.

Drugie pytanie, tak przy okazji, bo właśnie chciałem to przetestować. Czy
jest duża różnica w prędkości pomiędzy odczytem z pamięci programu a z
pamięci danych? Chce wykorzystać PRG_RDB(...);

Za wszelką pomoc dziękuję.

Pozdrawiam

Michał K.
Guest

Wed Mar 14, 2007 4:36 pm   



Quote:
Nie znam WinAVR, ale u mnie (avr-gcc) jest to #include <avr/pgmspace.h

Masz racje, google mnie w błąd wprowadziły. WinAVR jest oparty o kompilator
avr-gcc, więc w gruncie rzeczy to to samo.
Teraz się kompiluje ok.

Bardzo dziękuję za szybką odpowiedz i pozdrawiam.

Adam Wysocki
Guest

Wed Mar 14, 2007 4:41 pm   



Spinacz biurowy, Michał K. <sadfa@onet.pl>!

Quote:
Jak widać nie widzi biblioteki progmem.

Pliku nagłówkowego. To nie to samo.

Quote:
z niektórymi poleceniami ustawiającymi pojedyńcze bity? Przeszukałem folder
WinAVR i nie znalazłem pliku progmem.

Przeszukaj wszystkie pliki nagłówkowe pod kątem występowania słowa PROGMEM.

Nie znam WinAVR, ale u mnie (avr-gcc) jest to #include <avr/pgmspace.h>

Quote:
Drugie pytanie, tak przy okazji, bo właśnie chciałem to przetestować. Czy
jest duża różnica w prędkości pomiędzy odczytem z pamięci programu a z
pamięci danych? Chce wykorzystać PRG_RDB(...);

W datasheecie powinno być napisane (przy okazji listy rozkazów).

--
Adam Wysocki * Warszawa * http://www.chmurka.net/ * GSM: 514 710 213
FidoNet: 2:480/138, SWL: SP5-250730, QTH: KO02MF, CB: 19 Śródmieście
"sam jesteś jeden wielki ziew" (C) Jakub K. Lama (jceel), 29.11.2004
-> Zostało zaledwie 1379 dni do końca kadencji Lecha Kaczyńskiego <-

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zadeklarować tablice w PROGMEM na ATmega 128 z WinAVR i rozwiązać błędy?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map