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