Dzięki za przykład działa dobrze, tylko nadal mnie zastanawia czemu to nie działa, tym bardziej że ten kod powyżej jest o wiele łatwiejszy. Chyba wartość kodu ocenia się w pierwszej kolejności na podstawie jego skuteczności, a nie tego, czy jest łatwiejszy. No bo co z tego, że jest...
Jeśli zrobiłem tablice globalne, to przy wykorzystaniu pamięci RAM 83,6% jeszcze działało, Natomiast gdy zwiększyłem tablice i pamięć wynosiła 86% to już przestało działać ;D Funkcja która wysyła dane na kartę wygląda tak: passing argument 2 of 'f_write' makes pointer from integer...
Potrzebuję umieścić dużo danych w pamięci Flash, jednak prosty sposób ogranicza się tylko do 64 kB, ja potrzebuje więcej. Robię wiec tak: Spróbuj, nie testowane... [syntax=c]const uint16_t Tablica01[2048] PROGMEM = {65535,65534,.......3,2,1,0}; const uint16_t Tablica02[2048] PROGMEM...
Cześć, mam następujący problem. Zadeklarowałem sobie tablice w taki sposób: [syntax=c] const uint8_t array0[5] PROGMEM = { 5, 15, 25, 35, 45 }; const uint8_t array1[5] PROGMEM = { 5, 1, 25, 3, 45 }; const uint8_t * const arrays[2] PROGMEM = { array0, aarray1 }; [/syntax] Próbuję...
Czy można umieścić tablicę bajtowych danych w pamięci programu(FLASH) a nie RAMie tak jak to robi kompilator ? ( do elementów tej tablicy odwołują się funkcje ale nic do niej nie zapisują ) W Keilu wystarczylo uzyc slowa CODE przy deklaracji tablicy czy zmiennej, a w GCC mozna?? Pozdrawiam ...
Chyba miałeś na myśli _BV( i ). jeśli tak, to po mojemu to by było jakoś tak (zakładając zgodność kolejności bitów): uint8_t mask = (_BV(5) - 1); /* 0x1f */ PORTD = (PORTD & ~mask) | (cyfry[z][y] & mask); /* skopiuj 5 najmłodszych...
Witam zaimplementowałem (z drobnymi modyfikacjami) u siebie menu z tematu [url=]menu w skrócie wyszstkie deklaracje wyglądają tak [syntax=c] typedef struct { unsigned char next_state[4]; //przechodzenie pomiędzy pozycjami menu void (*callback)(unsigned char event); //funkcja callback const...
W AVR libc FAQ jest również przykład jak to zrobić: [syntax=c] #include <avr/pgmspace.h> const char foo[] PROGMEM = "Foo"; const char bar[] PROGMEM = "Bar"; PGM_P array[2] PROGMEM = { foo, bar }; int main (void) { char buf[32]; PGM_P p; int i; ...
Witam próbuję zapisać i odczytywać tablice z napisami w pamięci FLASH, niestety nie udaje mi się to, wyświetlacz nie wyświetla nic próbowałem po przez PROGMEM jak i przez __flash co kompletnie nie zadziałało nie chciało utworzyć zmiennej. poniżej kod programu. [syntax=c]const char T1[]...
O mem copy nie słyszałem, więc może nie będę się zagłębiał, Stosując mają pętlę wszystko działa, ale zajmuje strasznie dużo pamięci. Pomyślałem sobie zrobie to tak: do tablicy przetrzymującej obrazek dodam PROGMEM, Czyli mam [syntax=c]unsigned char PROGMEM obrazek[504]={0x00,0x00,...
unsigned int value[128] __attribute__ ((section("moja_sekcja&... = {1,2,3,4,5,6,7,8,9}; Tak zadeklarowana zmienna wyląduje w pamięci RAM (brak atrybutu PROGMEM). Dziwne wartości biorą się z tego, że zmienna ta nie znajduje się w sekcji...
Trochę dziwna ta deklaracja: Ja __attribute__((progmem)) używam raczej po nazwie zmiennej: sizeof tablicy dosyć rozbudowanych struktur (menu) umieszczonej w pamięci FLASH działa prawidłowo. Czyli konkretnie jakie wartości zwracają?
Witam. Ostatnio analizuję kodzik z tej stronki: Zastanawiająca jest tu tablica znaków. Mianowicie zapis nie wygląda tak jak standardowo, czyli dla każdego znaku jest np zapis ośmio-bajtowy, tak że nawet rzędy pikseli o wartości 0x00 są zapisywane do tablicy, przez co jest marnowane miejsce....
Witam Stworzyłęm sobie strukturę, a następnie stworzyłem tablicę typu tej struktury. Wykorzystuję to do wyświetlania menu. Tablicę umieściłem w pamięci programu. Problem objawia się w tym, że nie wiem jak przekazać tą tablicę do funkcji. Czy można przypisać jej jakoś wskaźnik...
:arrow: sandrak24 Chcesz mieć tablicę, gdzie będziesz miał wpisane numery portów i bitów do ustawienia w programie w stan wysoki? O to chodzi? Bo, prawdę mówiąc, też nie rozumiem, co znaczy, że porty ustawione w tablicy... W każdym razie, jeżeli chodzi chodzi o to, co napisałem, to...
To zrób sobie tablicę o 256 elementach i dla każdej kombinacji wejściowej (numer elementu tablicy) trzymaj odpowiednią kombinację wyjściową (szybka metoda na poprawę połączeń w locie - zajmuje jednak 256 komórek ramu lub jest wolna jeśli robimy z progmem), albo po wygenerowaniu tablicy...
Kurcze, zgłupiałem totalnie, proszę o wytłumaczenie jak to działa. Dla AVR mając np tablicę danych normalnie trafiała do RAM, często wykorzystując go w całości więc dodawało się PROGMEM, lądowała we FLASH (dosłownie zmniejszał się rozmiar zajętej pamięci RAM a zwiększał pamięci...
Witam. Chcę upakować tablicę tekstową ( około 3000 bajtów ) w pamięci programu. Tablica ma taki wygląd. Próbuje ją deklarować tak jak widać w poniższym oknie ale efekt jest mizerny. [syntax=c] const char *trans[][3] PROGMEM = { { "L1 tekst" , "0x00" , "L1-tekst opis" }, ...
Robię sobie tablicę unsigned char tablica To zależy od kompilatora. Dla avr-gcc trzeba dodać do deklaracji PROGMEM i do odczytu używać makr pgm_read_byte/word itp. W przypadku IARa wystarczy _flash.
A, przepraszam, śmieci nie dają, bo nie ma PROGMEM - przywidziało mi się. A powinno być zadeklarowane jako symbol preprocesora, bo w ten sposób kod będzie krótszy i szybszy. Tak, jak jest teraz, DP zajmuje pamięć ROM i RAM. Gdyby było PROGMEM - zajmowałoby (też bez potrzeby) tylko pamięć...
(at)robiw Jest kilka wyjść. Użyć makra GETFARADDRESS.... Możesz przybliżyć temat tego makra? Wywołując funkcję, której argumentem jest wskaźnik na tablicę zamiast Funkcja(Data), wprowadzam Funkcja(GETFARADDRESS(Data))? A jak z definicją tablicy? Używam definicji typu: const uint16_t...
W XC8 niby działa zarówno __flash, __mmx oraz atrybut programem jak i same const: Tak, czytałem o tym. Niestety w moim Microchip Studio czy Eclipse to nie działa. Tymczasem sprawdziłem działającą wersję z tablicami w RAM, jak niżej: [syntax=c] uint8_t *Flash[2] = {(uint8_t *) &PORTB,...
Podpowiedź: Definicja tablicy we fleszu: char WCholereDuzaTablica[1000] PROGMEM = {/*tutaj wartości*/}; I odczyt wartości: Zmienna = pgmReadByte(&WCholereDuzaTablica[... Mega8 ma 1 kB SRAMu, nie wciśniesz tam tej tablicy, bo jeszcze stos...
Mam takie tablice: lcd_send(pgm_read_byte(&buziaa Mam problem z przekazywaniem nazwy tablicy, Bo najpierw jest odczytywane tablica buzia0, potem buzia1, itp. W jaki sposób zamienić teraz to: &buziaa aby w te miejsce pojawiła się najpierw buizia0, potem buzia1, i nastepnie buzia2...
Dlaczego nie można zadeklarować tablicy większej niż 32k Kompilator się burzy nie o wielkość dostępnej pamięci programu tylko wywala komunikat że tablica jest za duża. ../Task2.c:26: error: size of array 'testX' is too large To jest ograniczenie języka (i kompilatora) wynikające...
Jak w temacie. Mam zdefiniowaną tablicę: extern unsigned char Fonts Nie bardzo rozumiem , co oznacza powyższy zapis.Tablica jest albo "na zewnątrz" , albo "wewnątrz" , a nie i tak i siak.Ja robię to tak: plik.s .globl Fonts .section .progmem.data Fonts: .byte 1,2,3,4,5,6 .byte...
Witam, mam pytanie, ponieważ namieszałem już tak bardzo, że sam nie wiem o co chodzi... (1) Załóżmy, że mam kilka deklaracji funkcji: void f_1(void); ... void f_5(void); (2) Następnie mam deklarację łańcuchów, umieszczonych w pamięci Flash: char f_Command1[]...
Jeśli korzystasz z avr-gcc to aby zapisać tablicę do flasha to musisz doczytać do czego służy PROGMEM. Co do tej książki to uważaj, bo jest tam masa błędów.
ProszÄ™. // font.h // // Tablica czcionek 5x7 // //#include <avr/pgmspace.h> static const char /*PROGMEM*/ font5x8[] = { 0x00, 0x00, 0x00, 0x00, 0x00,// (spacja) 0x00, 0x00, 0x5F, 0x00, 0x00,// ! 0x00, 0x07, 0x00, 0x07, 0x00,// " 0x14, 0x7F, 0x14, 0x7F,...
Volatile i PROGMEM?!! Zmienna i PROGMEM?!!
unsigned char znaki [ilość znaków][ilość kolumn znaku] PROGMEM = { {0x00, 0x00, 0xFF, 0x00, 0x00}, // 0 znak (5-kolumnowy) {0x00, 0x00, 0xFF, 0x00, 0x00}, // 1 znak (5-kolumnowy) {0x00, 0x00, 0xFF, 0x00, 0x00}, // 2 znak (5-kolumnowy) {0x00,...
Bawię się w wyświetlenie animacji na telefonia Nokia3310. Znalazłem jakiegoś gifa, przerobiłem go na 12klatek w BMP i wygenerowałem sobie dane. Wkleję może jak wyglądają 3 pierwsze klatki: [syntax=c]unsigned char PROGMEM buzia0 [6][84] = { {0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01,...
Witam chciałem wyświetlić pojedynczy znak z tablicy i nie wiem jak to zrobić może pokaże na przykładzie : [syntax=c] char PROGMEM tab1[] = {"FLASH"}; char tab2[]={"AVR ATMEL"}; lcd_str_P(tab1[2]); //znak A lcd_str(tab2[2]); //znak R [/syntax] Wyświetlacz LCD to hd44780...
Procedura, która woła Twoją procedurę powinna zaalokować (zdefiniować) tablicę Nie do końca się zgodzę się - chyba, że tablica ma być potem "zapisywalna", O wiele lepiej ZADEKLAROWAĆ tablicę jako stałą - w obszarze PROGMEM. Rozwiązanie, które przedstawiłem - jest zgodne z regułami...
Potrzebne mi to od zabawy AVR+ENC28j60. Chciałbym umieszczać niestringopodobne treści strony www bezpośrednio w kodzie c. Mając jej jako tablice w progmem łatwo mi korzystać z posiadanych funkcji. No właśnie o tym piszę. To jak traktujesz dane to kwestia zapisu w programie. Konwertowanie...
Przesadzone! Nie zgadzam się. Po to wymyślono struktury, aby je stosować. Jeśli ktoś chce - może wszystko zapamiętywać jako tablicę char-ów (bajtów) - wszak tak jest zorganizowana pamieć 8-bitowców, prawda? Tylko po co sobie utrudniać życie? Zadeklaruj stałą tablicę w PROGMEM,...
Coś może w takim stylu. Kod wyrwany z większej całości i trochę zagmatwany. Jest to fragment kodu do tablicowania wyjść w zespole wyświetlaczy 7-segmentowych LED. Fragment dotyczy wspólnych anod/katod ale jest również w podobnym stylu do obsługi poszczególnych segmentów podpiętych do...
Oj! RzeczywiÅ›cie, przecież tablica cmds też byÅ‚a PROGMEM , a nie byÅ‚a wÅ‚aÅ›ciwie odczytywana (a palnÄ…Å‚em, że „powinno dziaÅ‚ać” :oops: ). pytanie wiÄ™c brzmi czy cmd? znajdujÄ… siÄ™ w RAMie czy też w pamiÄ™ci programu. Tylko w pamiÄ™ci programu. Ciekawe dlaczego to skÅ‚adowanie...
Aby uzyskać efekt o jakim piszesz musisz użyć funkcji PRG_RDB z progmem.h. A więc jeszcze raz: Tworzenie tablicy w pamięci programu: prog_char TABLICA[5] = {0,1,2,3,4}; Czytanie wartości trzeciego elementu tablicy i wstawienie do zmiennej aaa: char aaa = PRG_RDB(&TABLICA[2]);
aby kompilator/linker był na tyle niedopracowany, aby stałe z pamięci typu FLASH, przepisywać do pamięci typu RAM w tej samej przestrzeni adresowej. Wszystko zależy od skryptu linkera i jak ktoś bardzo potrzebuje, to nie ma problemu w tym, żeby const były kopiowane do RAMu i tam używane. BTW,...
Tak powinno być dobrze const char *bufor[8] = ... ale napisz jaki mikrokontroler, dla AVR należy odpowiednio użyć atrybutu PROGMEM.
Można też ładnie zoptymalizować dostęp do poszczególnych bitów: static const PROGMEM bit_masks[8] = { 0x80, 0x40, 0x20 ... }; inline bool getBit(const uint8_t memory[], uint8_t bitnum) { const uint8_t cellIndex = bitnum / 8; const uint8_t maskIndex...
Lepiej napisz co chcesz osiągnąć. Jeśli to mają być stałe to lepiej je zadeklarować z atrybutem PROGMEM, żeby nie zabierały RAMu. Wtedy tablicę możesz zainicjalizować na etapie kompilacji. Jest tylko jeden problem - musisz wtedy korzystać z funkcji operujących na wskaźnikach do FLASH,...
pokaż kod z którym to nie działa, ewentaulnie samo wywyołanie funkcji pgm_read_byte zamień stałą o wartościowi 0 ( i innymi do testów 0xF0, 0x55 itd) i zobacz czy na wyświetlaczu będzie to co ma być Niezależnie od tego, co wpiszę do tablicy wyświetla zawsze to samo - krzaki jakieś. Funkcja...
Hint : PROGMEM
[syntax=c] #include <avr/io.h> #include <avr/pgmspace.h> #include <inttypes.h> #define F_OSC 11059200 #include <util/delay.h> #define toggle(PORT, BIT) (_SFR_BYTE(PORT) ^= _BV(BIT)) #define LCD_DDR DDRA #define...
Witam wszystkich serdecznie. Mam oto taki problem. Próbuję sterować świeceniem diody LED podłączonej do wyjścia PWM mikrokontrolera. Sterowanie odbywa się w ten sposób, iż podstawiam do rejestru OCRx używanego kanału PWM wartość i to powoduje, że dioda podpięta do tego kanału świeci...
z tego co widzę po kodzie, to autor używa PICa. Tam nie ma makra PROGMEM, tylko jak standard nakazał używa się słowa kluczowego const :) Może i PICa :) A propos const, standard nic nie mówi o wpływie const na miejsce przechowywania takiej zmiennej. W architekturze von Neumanna oczywistym...
putc przyjmuje jeden znak puts przyjmuje łańcuch putsp przyjmuje łańcuch z progmem
Witam, Jak powinienem zainicjować tablicę 4-wymiarową we FLASHU (ATmega16)? Próbuję w ten sposób: const unsigned klocki[7][4][4]&... PROGMEM = { {{{1,1},...
Znaczy w pamięci FLASH - do tego celu należy posłużyć się makrem PROGMEM, które w C++ działa z pewnymi problemami ale działa.
Wersja konserwatywna - z PROGMEM - też może być. Tylko nie zapomnij dorzucić nagłówka pgmspace.h i makr pgm_read_... przy odczycie zawartości tablicy ;)
W zasadzie twoj pomysl jest ok. Ja zrobilbym to tak: plik z danymi: data.txt [syntax=c] 1, 2, 3, 4, 5,... z tablica: tab.c [syntax=c] const int data_tab[] = { #include "data.txt" } [/syntax] Nie zapomnij o PROGMEM oraz odpowiednim odwolywaniu sie do elementow tablicy.
Witam Od wczoraj borykam się z takim problemem. Mam trzy tablice z bitmapami czcionek do wyświetlacza. Zamiast trzech funkcji, które będą pisały różnymi funkcjami napisałem jedną, której jednym z argumentów jest rodzaj czcionki. Mam jednak problem z odniesieniem się do tablicy z potrzebną...
Miałem na myśli AVR. Czyli wbrew temu co by się zdawało, w nich #define są tworzone w RAM. A myślałem że uda się dzieki temu zwolnić nieco tego cennego RAMu... W AVR są odpowiednie atrybuty, typu PROGMEM czy obecnie flash czy coś. A define to tylko define to nie ma odzwierciedlenia...
Witam, JacekCz To tylko przykład i nie przywiązywałem wagi czym zainicjuję tablice. Literki można potraktować jak wartości więc sens został zachowany. Ogólnie typy mam podzielone na UIntXX i IntXX oraz UChar i Char. Natomiast w przypadku: Warning 1 initialization from incompatible...
[syntax=c]int pocz = 10; PROGMEM const byte dane_code[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,... dane_ram[20] ; void setup() { Serial.begin(9600); } void loop() { for (int i = pocz; i < pocz+10; i++) { dane_ram[i]=dane_code[i]; Serial.print(dane_ram[i]); } ...
Ja też się przesiadłem z AVR-ków na ARM-y od ST i akurat na to nie narzekam. W Atmelkach trzeba było stosować enigmatyczne atrybuty PROGMEM, a teraz po prostu const, co wygląda nieco bardziej elegancko i łatwiej pisać przenośny kod. Najprostszym sposobem żeby stwierdzić gdzie trafiły deklarowane...
Witam. Potrzebuję w pamięci procesora umieścić tablicę. Zakres danych dla poz to 115 do 940 a dla każdej pozycji string sześcio znakowy. [syntax=c] typedef struct TRekord { uint16_t poz; char *txt; } TRekord; const TRekord tablica[] = { 940,"txt940", ...
Hej. Mechanizm działania znałem, funkcje odpowiedzialne za kopiowanie danych także znalazłem w *.lss. Byłem jednak pewien, że te stałe znajdują się w tym pliku, stąd pytanie. A pewność ta wynikała z tego, że jeśli w programie zadeklaruje stałe w pamięci flash (atrybut PROGMEM) to znajdują...
Chcę utworzyć stałą tablicę we flashu zawierajacą char[]. Dla jednego elementu wygląda to tak: [syntax=c]const char PROGMEM tekst[] = "asdasd";[/syntax] jak to zrobić dla tablicy wielu takich elementów tak aby wpisać ją w ten sposób? [syntax=c] definicja tablicy... { "asdasd", "ferferreg", ...
Okazało się ze atmega chodziła na 1MHz...wewnętrznym oscylatorze... Ale teraz mam kolejny problem Dodano po 16 Więc jest tak, dzięki odpowiedniemu ustawieniu Fusebitów ustawiłem Atmegę na 8Mhz. Przeliczyłem tablicę stałych dla 8Mhz. I teraz mam pytanko: Uruchamiając ten...
A nie jest czasem tak, że tablice stringów muszą być inaczej deklarowane, żeby siedziały w PROGMEMie? Nie jest tak. Zwróć uwagę na różnicę między definicją tablicy wskaźników do stringów a definicją tablicy stringów. Tobie się właśnie to pomyliło. char *tab to nie to...
Sama nazwa tak, ale tu chodzi o to, co trzymasz w tej tablicy, a tam w niej musisz trzymać coś const (to, że akurat to jest wskaźnik to swoją drogą) Tu nie chodzi o to, że tablica ma zawierać elementy spod innego adresu, ale to tablicy przecież możesz coś wpisać, a ten const spowoduje,...
Ale co w przypadku gdy chce przejsc na ekran drugi i zaladowac buttony na pozycjach z tablicy drugiej? Chcialem przekazac jakos elegancko wskaznik tablicy do funkcji button_init. Jeśli indeksy poszczególnych tablic są takie same, a wydaje się, że w twoim przypadku są, to musisz po prostu...
W sofcie musiał byś dopisać tablice. Skompiluj i sprawdź jak to działa. [syntax=c] float GetTemp(u16 Adc,float ku) { const static float dw[] PROGMEM = { // Tablica wielomianu dla termopary J /* 1.978425E+01, -2.001204E-01, 1.036969E-02, -2.549687E-04, 3.585153E-06, -5.344285E-08, ...
Witam, Postanowiłem sobie napisać program w C, który wyświetla na ekranie TV jakiś obrazek.. Chciałbym do tego użyć języka C, beż użycia asm,którego w ogóle nie znam. Tutaj można zdobyć trochę wiedzy: !!Uwaga poprany i działający kod jest [syntax=c] #include <avr/io.h> #include...
Wpisuj po prostu 0b... do tej tablicy, a reszta należy do procedury interpretującej... Co więcej, możesz zadeklarować tablicę 16 bit i ten niewykorzystany bit użyć np do kontroli parzystości, czy czegokolwiek... uint16_t PROGMEM tablica[1000] = { 0b0011101101101101, 0b0011011011011101, ...
W temacie o testerze elementów Wybieramy project->properties wybieramy use external makefile i wybieramy plik Makefile z katalogu "mega328_st7565", w katalogu projektu. W pliku Makefile zmieniamy: UI_LANGUAGE = LANG_ENGLISH na UI_LANGUAGE = LANG_POLISH (jeżeli chcemy polskie...
Przystąpiłem do lekcji 10. Zrobiłem analogiczne poprawki, jak w lekcji 9, ale niestety również nie mogę skompilować kodu. Poświęciłem praktycznie cały dzień na szukaniu przyczyny. Pojawiają się takie błędy przy kompilacji: Tutaj zamieszczam kod programu po moich poprawkach: ...
Wszystko da się zrobić, także wygenerować dane 12-bitowe, zamiast 16-bitowych. Niezależnie od tego, oba przykłady działają, i zamieszczam je tu dla potomnych. Dziękuje Ci Michałko za pomoc, dzięki Tobie rozwiązałem ten problem i to w dwóch wersjach :) Teraz kody: Wersja PGM_SPACE: ...
dane.h #include <avr/pgmspace.h> #include <inttypes.h> //prog_uint8_t tablica[17] PROGMEM = {0b11111111, 0b10011110, 0b00001110, 0b01101110, 0b01101110, 0b01101110, 0b01100000, 0b01100001, 0b11111111, 0b01111100, 0b01111000, 0b01110010, 0b01100110, 0b01001110, 0b00011110,...
mam problem, a mianowicie nie wiem jak usunąć błąd, aby program dobrze dziaÅ‚aÅ‚. Program ma wybierać jÄ™zyk w którym bÄ™dziemy siÄ™ dalej posÅ‚ugiwać. DziÄ™kujÄ™ z góry za pomoc. W kodzie ( na samym dole w komentarzach ) jest napisane jaki błąd wyskakuje przy const char *phrase = pgm_read_word(¤t_language...
Rozwiązałem problem ze zmienna, podaje cały kod jeszcze raz, jeśli ktoś ma chwile zerknąć na obsługę przerwania czy tak może zostać, oczywiście zostanie mi poprawić kod na czytelniejszy i kilka innych małych zmian. Dołączyłem jeszcze kilka ledow, wiec doszła mi jeszcze jedna tablica...
Sprawa rozwiązana. Moje oko nie dostrzegło, ale miernik na zwarcia tak- zwarcie pomiędzy dwiema nogami Xmegi SMD. Po przeskrobaniu układ ruszył i teraz mogę podzielić się wersją na Xmega. W stosunku do wersji na AVR AtMega, zmiany są takie: Procedura setup() jest następująca: [syntax=c] void...
Szybki wstęp to takiego menu: Oznaczamy na potrzeby programu każdą pozycję w menu: enum{ 0, menu1, menu2, menu3, menu11, menu12, ...}; tworzymy tablicę przejść menu unsigned char menu_stage [32][4] PROGMEM = { // next prev up down {0,0,0,0}; {}...
Arduino Leonardo które zamierzam wykorzystać będzie korzystało z yun shieldu, 6 czujników temperatury ds18B20 jednego DHT22, dwóch modułów 4 przekaźników podłączonych do wyjść PCF8574 oraz z modułu PCA9685 do sterowania 12 driverami power led DW8501 i 4 modułami mosfet do obsługi 3 kanałów...
Poczytałem trochę manuala do avr-libc dołączonego do najświeższego WinAVR i jak byk pisze tam, że aby zadeklarować i zainicjować tablicę łańcuchów w pamięci programu trzeba osobno zadeklarować samą tablicę jak i stringi ... Natomiast jeśli chodzi o struktury to powyższa reguła...
Kondensator co wspominasz o nim to jes podłączony rozumiem do masy jednym biegunem a drugim do portu ? NIE NIE NIE ABSOLUTNI NIE! Kondensator wpięty jest szeregowo pomiędzy portem a diodą nadawczą optotriaka. Dlatego na porcie musi być wystawiany sygnał prostokątny a nie stan wysoki lub niski....
Witam. W uzgodnieniu z autorem tego wątku zgłaszam sie z problemem dotyczącym programu sopelka, który zmodyfikowałem dla wzoru sopla 20 diod. Na warsztat poszła atmega8 tylko do testów z racji łatwego podłączenia na płytce stykowej, na której umieściłem też diody. Pierwszy test z programem...
Witam. Piszę program z obsługą MENU i w tym celu stworzyłem strukturę: Dodano po 2 Wystarczy zamiast: [syntax=c]const menu_item menu[] = {...[/syntax] wpisać: [syntax=c]const menu_item menu[] PROGMEM = {...[/syntax]
Witam. Piszę aplikację w języku C służącą do komunikacji mikrokontrolera AVR XMEGA32A4 poprzez interfejs UART/USART. Docelowo interfejs ten ma być połączony z modułem Bluetooth i służyć do komunikacji z telefonem. Aplikacja na telefonie sterowałaby mikrokontrolerem i urządzeniami peryferyjnymi...
Właśnie zrobiłem sobie trzy efekty na mega16. Efekt zaprzęgany poprzez obsługę przerwania(przepełnienie) z tablic. Efekty przełączam jednym przyciskiem, pomaga mi w tym zmienna "m". Zaś zmienne w przerwaniu pomagają mi manipulować prędkością przesuwania diod. Ustawiłem uC na 4Mhz. Jeśli...
Dziękuje za konkretną i zrozumiałą odpowiedź. Tylko jeśli zrobię to tak : byte const LGc[8] PROGMEM = { B00111, B01111, B11111, B11111, B11111, B11111, B11111, B11111 }; to w jaki sposób to wyświetlić i przenieść ? // Read a byte of character data OneByte...
nie mam już siły może ktos zerknąc???? Ten sam objaw nie ładuje nic do tablicy REC_MES #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <avr/pgmspace.h> static char sms[]...
Witam, Już trochę główkuję nad optymalnym rozwiązaniem, ale jak to czasami bywa.. brak wiedzy, pomysłu :) Otóż korzystam z rozwiązania menu, którego zarówno struktura jak i "teksty" są umieszczone w pamięci flash... [syntax=c] const char txt1[] PROGMEM="Ustawienia"; const struct...
Witam, MÄ™czÄ™ siÄ™ z kawaÅ‚kiem kodu, który wbrew (mojej) logice, dziaÅ‚a nie tak jak powinien. ChcÄ™ wyÅ›wietlić element tablicy stringów z pamiÄ™ci PGMEM, a w niektórych wypadkach otrzymujÄ™ Å›mieci. 05, PiÄ…tek 05, Å”GÅ”FÅ”EÅ”DÅ”CÅ”BÅ”AÅ”(at)Å”?Å”>Å”=Å...
Witam Kolegów Przepraszam, że przez kilka dni nie zabierałem głosu w temacie, ale bylo to niezależne ode mnie (awaria neta). A więc tak: - Po pierwsze chcę serdecznie podziękować Koledze excray - wdrożyłem przytoczone przez Ciebie rozwiązanie i jestem zachwycony. Oczywiście przeniosłem...
Witam, Potrzebuję zrobić sobie menu do sterownika silnika DC, aby było to menu łatwe do przenoszenia i edytowania między projektami postanowiłem je zrobić na strukturach. Tu pojawia się problem i od 3 dni nie mogę wpaść na to co źle robię. Oto wycinki kodu aby ułatwić zobrazowanie...
Autorze, dałem Ci gotowe rozwiązanie, ale nie czytałeś mojego postu uważnie. Nie czytałeś też dokumentacji ( MojaPolskieZnaki18_Bitmaps . Aby wyświetlić tekst funkcją MojaPolskieZnaki18_Glyphs 90(*) wiersz, gdyż tam znajdują się informacje o tym, gdzie w pliku MojaPolskieZnaki18_Bitmaps...
Witam, dzisiaj miałem czas na zgranie kodu i wyrzucenie z niego tego co nie dotyczy tematu: Dodano po 7 Przepraszam za dziwne znaki w komentarzach ale przerzucałem z Windowsa na Linuxa i nie konwertowałem kodowania. Będę wdzięczny za pomoc. Sławek
Przy załączeniu napięcia atmedze na wyświetlaczu zamiast oczekiwanego napisu pojawiają się randomowe śmieci. Przy zwyczajnym resecie wszystko jest ok. Z resztą najlepie to widać na filmiku: //MAIN--MAIN--MAIN--MAIN--MAIN--MAIN--MA...
Dzięki. Zrobiłem osobny plik wyswietlacz.h. Podlinkowałem w main.c i wyswietlacz.c Deklaracja wysw_bufor ../wyswietlacz.h:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PROGMEM' oto tablica: // tablica znaków wyświetlacza unsigned char tab_znakow[20]...
OK. To moze tak: #include <avr/io.h> #include <avr/pgmspace.h> #include "tab.h" char wysylaj = 0xAA; uint8_t i = 0; uint32_t j = 0; uint8_t licznik = 1; void SPI_MasterInit(void) //inicjali... SPI { /* Set MOSI and SCK output, all others input...
Witam, Chcę połączyć ze sobą dwie atmegi po TWI korzystam ze standardowej biblioteki do obsługi sprzętowego TWi tak jak w datasheetach. Jak podłączę jednego AVR do np Ds1307 to obsługa jest ok w dwie strony. Problem mam gdy połączę Atmega32 (master) z Atmega8 (slave) tzn gdy z Atmegi32...
Przepraszam, że tak długo zwlekałem, ale miałem inne sprawy na głowie. To jest kod definicji (zawarty w oddzielnym pliku main.h) [syntax=c] #define KMUZ0 PORTB.OUTSET=PIN6_bm #define KMUZ1 PORTB.OUTSET=PIN5_bm #define KMUZ2 PORTB.OUTSET=PIN4_bm #define KMUZ3 PORTB.OUTSET=PIN3_bm #define...
Proszę o pomoc. Używam AVR Studio7 i pierwszy raz próbuję skorzystać z pamięci programu do zapisania i odczytów tekstów. Moje dotychczasowe próby kończyły się niepowodzeniem. Poniższy kod kompiluje się bez błędów ale z odczytem było już tylko źle. [syntax=c] #include <avr/io.h> #include...
Witam, Po pierwsze. Chciałbym przenieść całą strukturę do pamięci flash: typedef struct { unsigned char state; unsigned char input; unsigned char nextstate; } MENU_NEXTSTATE; typedef struct { unsigned char state; unsigned char *pText; ...
Witam Mam problem z inicjalizacją portu RS232 na Atmedze162, szybkość transmisji 115200. 8, N, 1 oto kod: //Zmienne volatile unsigned char buffers[55]; volatile unsigned char counter=0; const unsigned char frame1[] PROGMEM={0x1E,0X00,0X0C,0X7F,0X00,0...
No to jest kolejna wersja : 1.0.0.5 teraz w przypadku konieczności generowania fontu binarnego tworzony jest nawet dodatkowy plik źródłowy w którym możemy sobie przetrzymywać nazwy plików na karcie pamięci SD. Dlaczego ? powód jest banalny no i znowu kolejne ułatwienie sobie pracy,...
Porównaj, komentarz chyba zbędny. #include <avr/pgmspace.h> const char st_w_RAM[]="abcd"; co... char st_w_ROM[] PROGMEM ="tekst w pamieci flash"; Nie tylko tablice znaków: const float PI PROGMEM=3.14159; const float PARAMETRY[3] PROGMEM={1.212,...
Jutro wieczorkiem będę modyfikował program. Mam zamiar po prostu wpisać do programu tablicę z gotowymi danym (policzonymi przez exela) Będzie to i dokładniejsze i mniej pracochłonne dla procka. Dzisiaj "poćwiczyłem" trochę zmienne tablicowe w PROGMEM i zobaczymy co z tego jutro wyniknie....
Witajcie, Wraz z grupą studentów tworzymy projekt domu inteligentnego w wersji open srouce & open hardware Jest to prosty sterownik do oświetlenia wykorzystujący arduino nano i kontroler ethernet ENC28J60 (właściwie moduł ethernet) Chcielibyśmy z racji łatwiej konfiguracji urządzenia...
Przystąpiłem do lekcji 10. Zrobiłem analogiczne poprawki, jak w lekcji 9, ale niestety również nie mogę skompilować kodu. Poświęciłem praktycznie cały dzień na szukaniu przyczyny. Pojawiają się takie błędy przy kompilacji: Tutaj zamieszczam kod programu po moich poprawkach: ...
czasem problemem okazuje się niestała stała - tablice stałych można przypuszczać, że będą tylko w pamięci flash - przeważnie okazuje się, że kompilator owszem zapisuje sobie tablicę w pamięci flash, ale z początku programu kopiuje sobie ją do ramu - w ten sposób można się odwoływać...
Ok, spróbujmy na tym kodzie, jednak sam niezbyt dam radę go przeanalizować, może wkleję go i byłbym bardzo wdzięczny za pomoc w rozszyfrowaniu tego kodu. [syntax=cpp]#include <avr\io.h> #include <avr\pgmspace.h> #include <util\delay.h> #include <avr\interrupt.h> #include...
Chciałbym się odnieść do linku w którym w skrócie udało się zrobić cos takiego, że w zależniści od bajtu nr 0 w pamięci EEPROM ESP wchodzi albo w tryb konfiguracyjny, gdzie tworzy sieć wifi do wprowadzenia parametrów dla docelowej sieci wifi. Po zapisie ESP32 sie resetuje i wchodzi w...
A moze tak send(PSTR("Falomierz V2.0")); a gdzies tam deklaracja send void send(u08 *pBuff) { while(PRG_RDB(pBuff)) putc(PRG_RDB(pBuff++)); } ewentualnie typ prog_char prog_char a[]="Ala...
Wybierz prescaler większy bądź równy 128 i wartość porównywania na '8000000/prescaler' Kolega chyba zapomniał , że TIMER2 jest tylko 8-bitowy :( Ja natomiast zaproponuje F_CPU/256/250 czyli ,F_CPU=8000000 , preskaler=256,OCR2=249 i co 125 przerwanie , mamy sekundę.Timer 2 w trybie CTC.Cały...
// tablica "napis" znajduje się w PROGMEM - w kodzie jest pgm_read_byte: OK char napis[] PROGMEM = {"test"}; // zmienna "text"również jest w PROGMEM: wywołanie fun(text.wsk) odwołuje się do złej pamięci t_text text PROGMEM =...
A teraz pytanie o to kiedy używać PROGMEM "tutaj": const unsigned char data[] TUTAJ= { 0x2E,0x73,0x6E,0x64,0x00,0x00, Bo program ruszył bez tego? Chyba ma to znaczenie przy optymalizacji kodu? Mam nadzieje że używasz PROGMEM, to słówko wywołuje to że twoja tablica...
Po podpięciu PCF mogę ustawiać / pobierać czas, niestety nie jest on w inny sposób zmieniany przez ten układ. w skrócie : PFC nie odmierza czasu. Kwarc 32k, kondensator 33piko. Zegar podłączony na płytce stykowej tak jak na schemacie, tylko pod ATmege8. Kod : w mainie w nieskonczonej...
Tablicę warto stosować w przypadku gdy sygnał pomiarowy reprezentuje funkcja, która zawiera punkt przegięcia. Dla funkcji wypukłej (wklęsłej) łatwiej będzie zastosować aproksymację wielomianem. Jak znajdę chwilę czasu to policzę to dla Twojego czujnika i podrzucę na forum. Być może...
W planie termostat sterowany poprzez okna dialogowe,przyciski na webserwerze według takiego schematu działania: -Zegar pokazujacy Aktualna Temperature z czujnika -Zegar do Zadawania temperatury -Zintegrowany Timer z biblioteka PID,gdy ustalam temp zadana timer się włącza -Zintegrowany przekaźnik...
Dziękuję, o to mi chodzi, ale nie wiem ciągle co napisać, żeby z np: Jako funkcję: Dodano po 1 Deklaracja funkcji w pliku nagłówkowym: Dodano po 32 i tak do byte 500 Nie wiem, jaką masz konkretnie płytkę Arduino, ale może Ci zabraknąć pamięci SRAM. Lepiej te tablice zdefiniować...
Witam, Dostałem ostatnio ogrzewanie przyczepy kempingowej z uszkodzonym sterownikiem. Chciałbym je zastosować do mojego garażu. Muszę zrobić prosty sterownik do tego ogrzewania i znalazłem program, który trochę przerobiłem. #include <OneWire.h> #include <DS18B20.h> #include...
Z dodatkowych rzeczy, które mógłbyś poprawić to: - stosowanie wielkich liter dla makr for . Mamy 21 wiek i stosujemy co najmniej "-std=c99", więc nie ma potrzeby deklarowania wszystkich zmiennych na początku funkcji enum i stosować zmienne i argumenty tego typu, np: enum class , który...
Co ty za bajki opowiadasz? to tablicy unsigned charow w flashu stm32 juz nie mozna trzymać? Co cie obchodzi szerokość słowa flash do zapisu , skoro tabelkę 'progmem' constów masz w RO? Kompilator sie martwi jak umieścić tą tablicę. Morzesz mu narzucić makefile'em region/sekcje w której...
Cześć, Do tej pory używałem czcionki 5x7. Kod do niej: [syntax=c]void GLCD_putchar(char c) { uint8_t orig_y=GLCD_y; char *ptr=(char*)font5x8+(5*(c-32)); uint8_t tmp_x=GLCD_x; uint8_t tmpcolor=color; for(uint8_t i=0; i<6; i++) { uint8_t tmp_y=orig_y; uint8_t tmp; ...
Trochę sobie zaoszczędzisz kodowania jak popatrzysz jak wygląda korekcja BCD przy dodawaniu binarnym. Te wszystkie ify nie są potrzebne - poczytaj o BCD. Po wykonaniu standardowej operacji nad liczbami w kodzie BCD należy sprawdzić i w razie potrzeby skorygować wynik. Dla dodawania i odejmowania...
Jeśli to GCC (a wszystko wskazuje, że tak) to musisz na początku dodać: [syntax=c]#include <avr/pgmspace.h>[/syntax] Tabli... deklarujesz tak: [syntax=c]unsigned char logo_bmp[] PROGMEM ={....[/syntax] Przekazanie tablicy do funkcji najlepiej robić przez wskaźnik do tablicy (w c sama...
Tablica w pamięci kodu (z tym, że przykład jest dla char): Mając taką tablicę wyszukujesz pomiędzy którymi punktami tablicy leży wartość i liczysz
Na poniższym przykładzie udało mi się już stworzyć przejście w tryb konfiguracyjny, na zasadzie access pointu, gdzie mogę wprowadzić nazwę, hasło wifi oraz inne parametry. Jeżeli je wprowadzę, ESP32 resetuje się i wchodzi w tryb pracy, gdzie łączy się już z moja siecią wifi i dodatkowo...
...I już się ucieszyłem, lecz stworzył się kolejny problem!! Ponieważ napisów jest ok 40-50, to po powyższej zmianie zajęty obszar pamięci data(RAM) nie wynosi już 31,3%, lecz 93,4%. I CO Z TYM DALEJ ROBIĆ:cry::?: Chyba się nie zrozumieliśmy :( Dane możesz umieścić w pamięci...
Witam! Posprawdzałem troszkę... Nie ma problemu umieszczania, gdy chcemy umieszczać cały obiekt w RAM lub Flash. W ram wiadomo jak, we flash następująco: typedef struct { char opis Posprawdzałem adresy i uzyskałem rozkład następujący w pamięci flash: &menu_pozycja_nr opis ",...
Sprawdź taki program: #include <avr/io.h> #include <avr/pgmspace.h> /* znaki 0-F dla wyswietlacza 7-seg */ static const uint8_t znaki[] PROGMEM = { 0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000,...
pisze programik w C ( nie jestem programista) dla atmegi88 moj problem to wywolanie odpowiedniego elementu z tablicy ktory jest wyswietlany na ekranie telewizora w postaci cyfry dziesietnej - odpowiadajacej wartosci z przetwornika AC static unsigned char cyfry[10][11][5]...
Dziękuję za pomoc poszukam coś i spróbuję podmienić tablice. Zatargaj ActivePerla, zainstaluj i wygeneruj sobie zawartość pliku fsdata.c komendą: perl makefsdata Wszystkie pliki które są w katalogu httpd-fs zostaną zapisane jako tablice. Skrypt perla który ja miałem...
Zasadniczo po pierwsze, do funkcji można przekazywać nie tylko wskaźniki, ale i tablice: void func(uint8_t array[][6]) { ... } Podobnie jak przy deklaracji samej tablicy - można pominąć "skrajnie lewy" wymiar. Spróbuj czy takie coś by nie działało jeśli dodasz atrybut PROGMEM do...
Witam, 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...
Witam, napisałem program, który pozwala na wyświetlenie 16 znaków z tablicy na 16 7-segmentowych wyświetlaczach. Następnie program przesuwa znaki w tablicy o 1 wyświetla kolejny znak, tak że całość przesuwa się na wyświetlaczach. Problem w tym że dzieję się to za szybko i znaki biegną...
Witam kolegów. Po długim boju z poprawnym skomunikowaniem klawiatury komputerowej PS/2 z mikrokontroleram stanałem na rzeczy teoretycznie prostej, ale która troche mnie przerosła. Mianowicie chcę przekształcić kod odebranego klawisza na znak i wysłać tenże znak na wyświetlacz LCD. Na początku...
Jeśli dobrze rozumiem, ma to działać następująco: Pobierasz po kolei dane z tablicy trianglewave do rejestru r0 (__tmp_reg__) i później wyprowadzasz tę wartość na PORTB . Skoro dane z tablicy pobierasz za pomocą polecenia assemblera lpm , to nie powinieneś czasami zadeklarować...
Gdybym dał kod to i tak nikt by tego nie zrozumiał :D tak wygląda funkcja mian: ////////////////////////////0 1 2 3 4 5 6 7 8 9 : ; < = > ? (at) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z SB uint8_t tabela...
Witam. Postanowiłem zbudować kolejny gamepad na mikrokontrolerze atmega, tym razem miałby on posiadać 10 przycisków. Ze strony pobrałem więc kod źródłowy 8 przyciskowego gamepada i zacząłem go przerabiać po swojemu. Najważniejsze zmiany jakich dokonałem to W pliku Twelve.c: Dodałem...
Witam, Mam następujący kod: [syntax=c]void GLCD_putchar(char c) { char *ptr=(char*)font5x8+(6*(c-32)); for(uint8_t i=0; i<5; i++) { uint8_t px=GLCD_ReadByteFromROMMemory(ptr++); if(color==0) px^=0xFF; GLCD_WriteData(px); } if(color==0) GLCD_WriteData(0xFF); else GLCD_WriteData(0x00); }[/syntax] [sy...
dzięki za odp, masz racje chodziło mi o zatrzask, a dektywacje wyjścia mogę w moim układzie łatwo przerobić bo moge sterować bezpośrednio wejsciem OE w 74hc595; Teraz odnośnie tablicy znaków, to znalazłem taką na pokrewnym temacie: Temat Wyświetlacz LED - Mega32 Użytkownik xamrex ////////////////////////////...
Ok teraz chyba rozumiem, czyli np: [syntax=c]void fun( uint16_t * zm ); fun( &zmienna_flash );[/syntax] tak by wyglądała deklaracja funkcji w której argumentem jest wskaźnik a niżej jej wywołanie w programie. Gdyby chodziło o tablicę w pamięci flash to np: [syntax=c]uint16_t tablica[]...
Chodzi mi o to, że mam układ hardware, gdzie segmenty wyświetlacza podłączone są część do portu D, część do Portu B. W necie Jest wiele opisów programów ale wszystkie pokazują jak działa program kiedy wszystkie segmenty wyświetlacza są podłączone do jednego portu. Zaprezentuje kawałki...
Dobrze. Plik 'fonty.h' wygląda następująco zrobiłem dla każdego wiersza tablicę... [syntax=cpp]uint8_t napis0[]={0x89,0xcf,0x3e,0x88}; uint8_t napis1[]={0xda,0x28,0xa0,0x90}; uint8_t napis2[]={0xaa,0x28,0xa0,0xa0}; uint8_t napis3[]={0x8b,0xef,0x38,0xc0}; uint8_t napis4[]={0x8a,0x2a,0x20,0xa0}; ...
To jest 20x4 znaki bo nie upewniłem się? Jakies problemy z nim miałem, poniżej działający kod (biblioteki IIC nie załaczyłem) [syntax=c] LcdDOGM204In... 1 ); LcdDOGM204Kontrast( 35 ); // LcdDOGM204view( 1 ); // Negatyw/pozytyw //===============...
tmf napisał: w końcu standard C nigdzie nie definiuje, że stałe muszą być we FLASH. Standard C nie wie nic o FLASH, ale to nie powód. To oświeć mnie, co jest powodem. Rzeczywiscie - plik .c z taką tablicą skompiluje w ciągu pewnie 0.2 sek (a stanie się to raz o ile coś...
Wrzucam kod dla Attiny13A: ilość próbek częstotliwość wyjściowa 356 49.3 355 49.4 354 49.65 353 49.8 352 50 Wygenerowane przebiegi na oscyloskopie: na skraju cykli Zbliżenie sygnałów 50Hz (brak kolizji, czyli obu sygnałów w stanie...
Zastosowałem się do tych porad jednak pojawił się inny problem - Moja tablica znaków stałą się strasznie zdeformowana, literki są strasznie nieczytelne. Czy istnieje jakiś inny sposób odczytywania tak zadeklarowanych zmiennych? (Funkcja GLCDChar(x) wyświela x-ty znak zdefiniowany w tablicy...
(...) .db "Jakis napis",0x0a,0x0d, 13,12, 0 lpm acc, z (lub z+) A co to za potworki? Znak końca linii (i do tego windowsowy :/) też nie jest potrzebny, wystarczy samo zero, chyba że urządzenie komunikuje się z windowsowym terminalem tekstowym przez rs-232. I skąd się wziął akumulator...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c...
Kod programu jest wzięty, z katalogu przyklad/uart dołączonego razem z bibliotekami. Oto jego kod /*--------------------------------------... */ /* Demo biblioteki UART */ /* Autor: Robert Krysztof */ /* WWW: http://www.8051.prv.pl */ /* E-mail:...
Czy da sie zmienic zawartosc tablicy zdefiniowanej w pamieci programu (np char TABLICA [] PROGMEM = " blablabla") podczas dzialania programu?? Wydaje mi sie, ze nie ale chcialbym sie upewnic.
Pisałeś w temacie: I zastosowałem się do tego w taki sposób: Plik: main.h extern unsigned char reset_MCUCSR ; // zapamiętanie flag powodu restartu systemu extern unsigned char DDT_stan ; // flagi stanu urządzenia #define DDT_ON_OFF 0 // bit 0 - włączone / wyłączone extern...
Może tak ? : LCD_DisplayPicture(*Obraz, 0, 0, 25, 7) Tak na pewno nie jest dobrze. *Obraz to liczba (z początku tablicy, czyli 0), a potrzebujemy wskaźnika. Nie wiem, czy dobrze mi się wydaje, ale dogm_core_data(pgm_read_byte(dpt... Nie inkrementuje zmiennej dptr...