progmem tablica

Znaleziono około 310 wyników dla: progmem tablica
  • Jak poprawnie używać PROGMEM z tablicą stringów w ATmega8?

    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 samo co char tab Tablica wskaźników do stringów musiałaby być inicjalizowana jak w...

    Mikrokontrolery AVR   16 Lut 2012 18:12 Odpowiedzi: 6    Wyświetleń: 1687
  • C - Przekazywanie wskaźnika na tablice PROGMEM do funkcji

    W nawiązaniu do porad kolegi tmf proponowałbym coś w tym stylu (być może strach przed kwalifikatorem __flash wynika z braku przykładów kodu :?: : [syntax=c] // przykład jak używać kwalifikatora __flash do umieszczania // danych w pamięci programu i jak się do nich odwoływać // kod gotowy do odpalenia w symulatorze Atmel Studio 6 // można zaobserwować...

    Mikrokontrolery AVR   07 Lip 2015 18:51 Odpowiedzi: 15    Wyświetleń: 2163
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Jak odczytywać tablice PROGMEM powyżej 64kB na ATmega1284?

    Po prostu piszesz const uint16_t __memx Data[] = {...} i zapomoinasz o wszystkim. Dalej po prostu odwołujesz się do Data bez żadnych pośredników - wszystko załatwia kompilator.

    Mikrokontrolery   07 Mar 2017 18:28 Odpowiedzi: 19    Wyświetleń: 1119
  • [avr-gcc][PROGMEM] - Wskaźnik do tablicy wskaźników na teksty

    A w jaki sposób zmienić lang_polish? Nazwa tablicy jest stałym wskaźnikiem do pierwszego jej elementu (o ile pamiętam z książek i studiów). Nie da się w programie zrobić tak, żeby tablica zawierała elementy znajdujące się pod innym adresem. Żeby uprościć: Sama nazwa tak, ale tu chodzi o to, co trzymasz w tej tablicy, a tam w niej musisz trzymać coś...

    Mikrokontrolery AVR   26 Wrz 2013 20:17 Odpowiedzi: 8    Wyświetleń: 3969
  • REKLAMA
  • Jak użyć wskaźnika do tablicy PROGMEM w AVR-GCC?

    Nie tyle PROGMEM co const. Usuń const z ikony lub dopisz do bitmap .

    Mikrokontrolery AVR   13 Sty 2013 17:23 Odpowiedzi: 11    Wyświetleń: 3711
  • [AVR-GCC] Jak wyświetlić menu z tablicy PROGMEM na GLCD KS108A?

    Spróbuj: glcd_str_P((char *)pgm_read_word(&menus[idx]));

    Mikrokontrolery   27 Kwi 2014 12:15 Odpowiedzi: 3    Wyświetleń: 1452
  • [C][Atmega8]presclaler,licznik T1, tablica stałych w PROGMEM

    Obliczenia są +/- poprawne, pod warunkiem, że procesor rzeczywiście jest taktowany 12,8MHz. Domyślnie atmega8 działa na wewnętrznym rezonatorze 8MHz który jest dodatkowo dzielony przez 8. Żeby to zmienić musisz przeprogramować fuse bity. Najlepiej to zacznik od uzyskania częstotliwości 1Hz na jakimś pinie - miganie LED przy czasach rzędu 3,1ms dość...

    Mikrokontrolery AVR   27 Kwi 2009 18:41 Odpowiedzi: 3    Wyświetleń: 2903
  • REKLAMA
  • [AVR][C][RTC-PCF8583] dni tygodnia, deklaracja tablicy znaków

    Zadeklaruj stałą tablicę w PROGMEM, a ze struktury odnoś się przez wskaźnik.

    Mikrokontrolery   03 Kwi 2013 22:42 Odpowiedzi: 7    Wyświetleń: 2793
  • Jak nazwać tablicę z inkrementacją w C dla PROGMEM?

    Stwórz 3 elementową tablicę wskaźników na tablice; unsigned char PROGMEM *buzia = {buzia0,buzia1,buzia2}; a następnie przekazuj jakoś tak: lcd_send(pgm_read_byte((buzia[a])[][]); Kod poglądowy pewnie nie zadziała od razu :)

    Mikrokontrolery AVR   23 Maj 2011 13:06 Odpowiedzi: 3    Wyświetleń: 837
  • AVR - błąd ../main.c:20:2: warning: '__progmem__' attribute ignored [-Wattribute

    Próbujesz utworzyć tablicę z atrybutem PROGMEM jako zmienną lokalną, jest to sprzeczność i dlatego dostajesz ostrzeżenie od kompilatora. Przenieś tablicę na zewnątrz funkcji main (żeby była globalna).

    Mikrokontrolery   12 Sie 2012 15:04 Odpowiedzi: 3    Wyświetleń: 2040
  • [ATtiny2313][C/AVR STUDIO 5] Tablica stałych coś nie działa tak jak chcę

    Do tablicy umieszcoznej we FLASH (PROGMEM) musisz odwoływać się przy pomocy specjalnych makr zdefiniowanych w pgmspace.h, np.: pgm_read_byte (&weber[i]);

    Mikrokontrolery AVR   09 Cze 2011 15:30 Odpowiedzi: 4    Wyświetleń: 1695
  • [GCC]Położenie funkc. w progr. odwoł.się do tabl.komunikatów

    Widać nie rozumiesz o co chodzi. Ani ja ani Dr.Vee nie mówimy o przeniesieniu komunikatów do ramu, tylko tablicy wskaźników na komunikaty. Najpierw musisz pobrać wskaźnik z tablicy (ponieważ napisów jest więcej), potem dopiero wykorzystując wskaźnik odczytujesz ciąg z pamięci programu. Jeśli nie chcesz przenosić tablicy wskaźników, to niestety musisz...

    Mikrokontrolery AVR   12 Maj 2009 22:35 Odpowiedzi: 11    Wyświetleń: 1908
  • REKLAMA
  • AVR, const char[] PROGMEM - Jak zadefiniować tablice stałych char[] w PROGMEM?

    Marnowanie pamięci....

    Mikrokontrolery AVR   22 Lis 2013 11:52 Odpowiedzi: 6    Wyświetleń: 2934
  • [C][ATmega168][USART] jak wysłać tablicę w przerwaniu a nie stosując pooling?

    putc przyjmuje jeden znak puts przyjmuje łańcuch putsp przyjmuje łańcuch z progmem

    Mikrokontrolery AVR   19 Kwi 2012 22:28 Odpowiedzi: 8    Wyświetleń: 1707
  • [c] Atmega32 - problem z wyświetlaniem tekstu z PROGMEM na LCD

    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 łatwiejszy, jeśli nie działa? Przykład, który podałem nie jest mojego...

    Mikrokontrolery AVR   24 Paź 2011 22:51 Odpowiedzi: 4    Wyświetleń: 1669
  • Tablica char, błąd: incompatible types in assignment, kod.

    Tak powinno być dobrze const char *bufor[8] = ... ale napisz jaki mikrokontroler, dla AVR należy odpowiednio użyć atrybutu PROGMEM.

    Mikrokontrolery   12 Sie 2008 15:07 Odpowiedzi: 14    Wyświetleń: 3245
  • Sterowanie pilotem klimatyzacji przez arduino nano.

    Te tablice int[] powinny być zdefiniowane jako PROGMEM w programie. Wtedy nie zajmowałyby pamięci SRAM, zajmowałyby miejsce tylko we Flash.

    Arduino   16 Sty 2020 00:44 Odpowiedzi: 12    Wyświetleń: 729
  • Jak prawidłowo umieścić dane w tablicy, a ją w pamięci programu?

    Próbuję i nic mi nie wychodzi. Dane nadal się różnią. Może jakiś przykładzik. Przykładzik: https://www.arduino.cc/en/Reference/PROG...

    Arduino   14 Lut 2017 22:53 Odpowiedzi: 4    Wyświetleń: 600
  • Czy można zmienić zawartość tablicy PROGMEM w trakcie działania programu?

    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.

    Początkujący Elektronicy   18 Lis 2009 00:01 Odpowiedzi: 3    Wyświetleń: 762
  • Atmega328: Jak umieścić tablicę Int i String w pamięci Flash za pomocą PROGMEM?

    (at)dasej Jest jakiś techniczny argument za tym aby uprawiać tego typu archeologię?

    Mikrokontrolery AVR   06 Lut 2018 19:55 Odpowiedzi: 8    Wyświetleń: 846
  • ATmega16 - optymalna obsługa animacji diod led w C

    Raczej zastosuję taką tablicę: uint8_t PROGMEM tablica[1000][19] = { {0b0011101101101101, 0b0011011011011101, ........... 0b0111011110110101}, .......... {0b0011101101101101, 0b0011011011011101, ........... 0b0111011110110101}, }; Pierwszy wymiar to będą klatki a drugi to już po prostu dopełnienie do 150bitów....

    Mikrokontrolery AVR   19 Sty 2011 22:01 Odpowiedzi: 15    Wyświetleń: 1968
  • OLED 128x64 SSD1306 - błąd wyświetlania małych bitmap w Arduino

    Hmm, a jesteś pewien, że to co wygenerowałeś jako tablica jest poprawne? Bo może wyświetlasz dobrze, tylko że bzdury? ;) Patrząc na Twoją tablicę, to masz w niej 41 bajtów, czyli 41*8=328 bitów. Jeżeli Twój obrazek ma 30x11px, to potrzebujesz 330 bitów. Nie zgubiłeś czegoś? ;) I mam problem z małymi grafikami, o ile duże 96x48 px to nie problem, o tyle...

    Arduino   04 Lis 2018 10:56 Odpowiedzi: 21    Wyświetleń: 2634
  • Jak użyć rejestru przesuwanego w matrycy LED 5x8 z AVR?

    Na 164 raczej nie, bo to jest parallel in, serial out, a ty potrzebujesz na odwrót - serial in, parallel out, czyli 595. BTW, tablicę zdefinuj z progmem, dzięki czemu nie będzie zajmować SRAM (pamiętaj o użyciu stosownych funkcji do jej odczytu). Te wszystkie case są niepotrzebne - lepiej przesuwaj bity w PORTC - krótsze, szybsze.

    Mikrokontrolery AVR   10 Maj 2011 22:49 Odpowiedzi: 43    Wyświetleń: 4891
  • AtMega8 - program o rozmiarze bliskim 8kB przestaje działać

    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ć do komórek takiej tablicy jak do zwykłej pamięci ram (przestrzeń). Może...

    Mikrokontrolery   20 Lip 2007 22:22 Odpowiedzi: 13    Wyświetleń: 1653
  • Błąd kompilacji w AVR Studio 4 przy projekcie LED Cube 4x4x4, Makefile 80

    PROGMEM to nic innego jak atrybut, który umieszcza zmienną/tablicę zmiennych w pamięci programu. Przy inicjowaniu tablic wielowymiarowych zawsze powinno się stosować zagłębianie klamer, czyli "każdy wiersz we własnych klamrach". [syntax=c]PROGMEM const uint8_t tab[2][2] = { { 0xff, 0xff }, { 0xff, 0xff } };[/syntax] lub [syntax=c]PROGMEM const uint8_t...

    Mikrokontrolery   05 Gru 2011 11:04 Odpowiedzi: 14    Wyświetleń: 4004
  • Błąd w wyświetlaniu grafiki na KS0108 - funkcja i tablica picture

    Nie napisałem tych funkcji więc wydaje mi się że tablica została umieszczona w ram i przepełniłem ram(dobrze kumam?). Nie ;-) Tablica była umieszczona w pamięci FLASH (makro PROGMEM), jednakże powoduje to, że do tak zdefiniowanych zmiennych nie można odnosić się w sposób bezpośredni, tylko z poprzez odpowiednie makra: pgm_read*, które są zdefiniowane...

    Mikrokontrolery AVR   22 Cze 2017 14:34 Odpowiedzi: 7    Wyświetleń: 999
  • [AVR][GCC] wskaźnik w strukturze - przekazanie parametru

    // 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 = {napis}; zamień: fun( text.wsk ); na coś pokroju:...

    Mikrokontrolery   13 Kwi 2010 19:53 Odpowiedzi: 8    Wyświetleń: 3874
  • [AVR][AVR-GCC] Tablica pod wskazanym adr. w pamięci programu

    Hint : PROGMEM

    Mikrokontrolery AVR   03 Mar 2011 16:14 Odpowiedzi: 18    Wyświetleń: 3976
  • Stacja lutownicza na Atmega8

    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, 5.099890E-10 */ // Tablica wielomianu dla termopary T /* 2.592800E+01,...

    DIY Warsztat   02 Lut 2023 22:41 Odpowiedzi: 634    Wyświetleń: 284649
  • winavr itp. - Poszukiwany program do konwersji plików binarnych na tablicę char

    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 danych binarnych na kod c, po to, żeby potem je przekonwertować...

    Mikrokontrolery   01 Kwi 2013 09:43 Odpowiedzi: 9    Wyświetleń: 1350
  • Sterowanie triakami w ściemniaczu 230V na Atmedze328P - problem z PD5 i PD6

    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. Ale dzięki temu zyskujesz 100% pewności na wypadek awarii...

    Mikrokontrolery AVR   17 Maj 2012 12:40 Odpowiedzi: 6    Wyświetleń: 3148
  • win AVR - błędne adresowanie tablic po dodaniu nowych danych

    Dobrze byłoby, żebyś pokazał przynajmniej newralgiczną część kodu (definicje tablic)! Jeżeli chcesz mieć tablicę we FLASH, to trzeba użyć nie (tylko) modyfikatora const , ale atrybutu PROGMEM lub równoważnego. Czy robisz to poprawnie? Czy kompilator nie pokazuje żadnych ostrzeżeń?

    Mikrokontrolery   30 Sie 2007 12:04 Odpowiedzi: 10    Wyświetleń: 1531
  • Jak odczytać dane z tablicy 2D w pamięci flash AVR-GCC?

    ... Po umieszczeniu tablicy w pamięci programu (dodanie PROGMEM do deklaracji) wywołanie powinno wyglądać tak? ... a=pgm_read_byte(FontLookup[ch - 32][i]); ... Nie zadziała :( ... a=pgm_read_byte(&FontLookup[ch - 32][i]); ... Zadziała :D Piotrek PS Nie znam struktury plików , w Twoim projekcie ;)

    Mikrokontrolery   28 Sie 2005 21:49 Odpowiedzi: 4    Wyświetleń: 3755
  • [C] Optymalizacja zapisu liczb na kartę SD z FatFS - problem z buforem 100 liczb

    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 without a cast Czym jest to spowodowane?

    Mikrokontrolery AVR   20 Cze 2011 18:54 Odpowiedzi: 18    Wyświetleń: 1661
  • Powietrzna pompa ciepła - z klimatyzatora LG S30AW

    https://www.elektroda.pl/rtvforum/viewto... Wystarczy też na komórkę ściągnąć aplikacje dla konkretnego modelu, lub uniwersalną i dobrać działające wirtualne piloty, ale to zazwyczaj właśnie podstawowe funkcje. Z arduino jak wyżej trzeba ogarniać tworzenie tablic poleceniem PROGMEM i można zbudować swój pilot na kilka-kilkanaście...

    Systemy Grzewcze Użytkowy   10 Sty 2024 16:29 Odpowiedzi: 2359    Wyświetleń: 325428
  • AVR-GCC tablica wskaźników na funkcje i ich wywoływanie

    Może coś takiego będzie działać, sprawdziłem tylko, że się kompiluje: // definicja tablicy wskaźników do funkcji void (*f_Function_table[])... PROGMEM = { f_1, ... f_5 } //----------- // wywołanie void (*f)(); // pośredni wskaźnik na funkcję f = (void*)(pgm_read_word(&&...

    Mikrokontrolery   15 Wrz 2007 15:18 Odpowiedzi: 5    Wyświetleń: 4166
  • Jak umieścić napisy w pamięci flash na ATmega8/128 w C/Assemblerze?

    (...) .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 w AVR? W C robisz tak (avr-gcc): #include <avr/pgmspace.h>...

    Mikrokontrolery   08 Wrz 2006 20:50 Odpowiedzi: 5    Wyświetleń: 4432
  • [AT8] Jak sprawdzić długość tablicy w pamięci flash Atmega? `sizeof` nie działa

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

    Mikrokontrolery AVR   06 Cze 2011 21:03 Odpowiedzi: 5    Wyświetleń: 1501
  • Wgrywanie ikonek do FLASH w STM32F407VG przez Pixel Factory

    W mikrokontrolerach AVR wystarczyło tylko dodać słówko "PROGMEM" przed tablicą, a potem odczytywać za pomocą funkcji pgm_read_byte(). Do programowania używam środowiska System Workbench i wiem że czegoś takiego tam niema W STM jest to jeszcze prostsze. Wystarczy dodać kwalifikator "const" np: [syntax=c] const uint32_t table[5] = {1,2,3,4,5}; uint32_t...

    Mikrokontrolery ARM   15 Wrz 2019 20:40 Odpowiedzi: 14    Wyświetleń: 672
  • [Atmega8][C] - Obsługa wyświetlaczy 7 LED - pierwsze starcie, krytyka programu

    Moim zdaniem zdecydowanie lepiej, niesądzisz? Przede wszystkim zysk jest taki, że multipleksowanie robi się "samo" i w main sobie piszesz co chcesz. Popracuj jeszcze nad jedną kwestią, która zmniejsza czytelność kodu - zasięg zmiennych. Zastanów się, które zmienne naprawdę muszą być globalne, a które nie. Te, które nie muszą zrób jako zmienne lokalne....

    Mikrokontrolery Początkujący   23 Lip 2012 11:45 Odpowiedzi: 18    Wyświetleń: 2714
  • Attiny2313A - problem z odczytem danych z tablicy w pamięci przy użyciu zmiennej

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

    Mikrokontrolery AVR   18 Mar 2015 11:09 Odpowiedzi: 11    Wyświetleń: 1143
  • [ATMEGA32][C]Jak zrobić proste menu na LCD ? koncepcja

    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}; {}; {}; {}; {}; } nieistotne...

    Mikrokontrolery AVR   26 Paź 2010 22:43 Odpowiedzi: 25    Wyświetleń: 10732
  • Jak napisać funkcję BIN2BCD w C do konwersji wartości char (0-99) na BCD?

    Dlatego poprzestałem na dzieleniu. Zmienne "CyfraX" (X=1,2) są pointerami do tablicy (progmem) i nowe wartości podawane są już na port procka, do którego (przez oporniki) podłączone są katody wyświetlaczy. Anodami sterują inne piny. Nic wielkiego.

    Mikrokontrolery AVR   22 Lis 2014 17:13 Odpowiedzi: 12    Wyświetleń: 1185
  • [ATmega2560][C] Wskaźniki w funkcji do pamięci programu

    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[] PROGMEM = {512,3,1333}; void fun( uint16_t * tb );[/syntax] a potem...

    Mikrokontrolery AVR   18 Kwi 2012 17:13 Odpowiedzi: 10    Wyświetleń: 1425
  • [atmega32] [c] - wyświetlacz widmowy 20led problem z tablicami znaków.

    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 znaków, a przed kompilacją jeszcze na komputerze jakimś szybko napisanym...

    Mikrokontrolery AVR   07 Maj 2013 10:45 Odpowiedzi: 5    Wyświetleń: 1488
  • Język C dla Atmeli: ograniczenie ilości wpisów w tablicy const char

    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 tablicy w pamięci programu nie działa właściwie. Może chodzi o to, że...

    Mikrokontrolery AVR   21 Paź 2014 17:24 Odpowiedzi: 12    Wyświetleń: 1734
  • Jak zadeklarować stałą tablicę w pamięci Flash zamiast RAM w C/C++ (np. AVR)?

    Musisz uzyc polecenia PROGMEM np const char tablica1[] PROGMEM="cos tam";

    Mikrokontrolery   20 Maj 2006 17:02 Odpowiedzi: 5    Wyświetleń: 1267
  • [C] [C][atmega88] Optymalizacja pamięci dla dużej tablicy cyfry w C

    Aby zoptymalizować program możesz rozważyć poniższe podpunkty: 1)Mozesz dać tablicę do flash-a.wystarczy dołączyć plik nagłówkowy <avr\pgmspace.h> sposób definicji zmiennej ładowanej do flash: np. static unsigned int LCD_SegTable[] PROGMEM = { 0xEAA8, // '*' 0x2A80, // '+' 0x4000, // ',' 0x0A00, // '-' 0x0A51, // '.' Degree sign 0x4008,...

    Mikrokontrolery AVR   21 Paź 2008 23:40 Odpowiedzi: 7    Wyświetleń: 1809
  • [AVR-gcc] Jak zmniejszyć sekcję .data przy użyciu stringó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 ma kota"; i chyba PROGMEM powoduje umnieszczenie tablicy sekcji .text...

    Mikrokontrolery   13 Lis 2005 23:16 Odpowiedzi: 6    Wyświetleń: 1293
  • [AVR][Atmel Studio] - Wskaźnik na tablicę wskaźników

    Witam, Panowie dziękuję za cenne uwagi. Mam jednak do nich pytanie: [syntax=c]// Definiuje nowy typ - tym razem dla mniejszej wygody typedef char Int8; // Napisy w pamięci programu static const Int8 PROGMEM Text_A[] = {" blebleble1 "}; static const Int8 PROGMEM Text_B[] = {" blebleble2 "}; static const Int8 PROGMEM Text_C[] = {" blebleble3 "}; static...

    Mikrokontrolery AVR   16 Cze 2016 11:21 Odpowiedzi: 7    Wyświetleń: 1386
  • [C] [C][atmega8] Błędy wyświetlania przy tablicy char powyżej 48 znaków na matrycy 8x8

    Volatile i PROGMEM?!! Zmienna i PROGMEM?!!

    Mikrokontrolery AVR   01 Gru 2009 10:43 Odpowiedzi: 9    Wyświetleń: 2079
  • [at90s2313] AVR Studio 4 - Błąd stosu przy tablicy char TABLICA[][6]

    Ten procesor ma tylko 128 bajtow RAM, a twoja tablica ma 6*24=144 bajty. Zainteresuj sie atrybutem PROGMEM i umieszczaniem stalych w pamieci FLASH.

    Mikrokontrolery AVR   27 Gru 2009 08:44 Odpowiedzi: 7    Wyświetleń: 1271
  • Optymalizacja pamięci RAM przy wyświetlaniu bitmap na ST7565 i ATmega328P

    Jeśli to GCC (a wszystko wskazuje, że tak) to musisz na początku dodać: [syntax=c]#include <avr/pgmspace.h>[/syntax] Tablice deklarujesz tak: [syntax=c]unsigned char logo_bmp[] PROGMEM ={....[/syntax] Przekazanie tablicy do funkcji najlepiej robić przez wskaźnik do tablicy (w c sama nazwa tablicy to wskaźnik do jej pierwszego elementu). Czyli:...

    Mikrokontrolery   15 Paź 2013 21:02 Odpowiedzi: 8    Wyświetleń: 1779
  • [ATmega16][C] Matryca LED 8x8 Słaba jasność świecenia diod

    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, 0b00111110, 0b11111111}; //prog_uint8_t tablica[11]...

    Mikrokontrolery AVR   01 Sie 2010 16:32 Odpowiedzi: 51    Wyświetleń: 9500
  • Jak powinna wyglądać składnia? Definicja stałych tablic w C.

    #define nie są nigdzie "tworzone" - to proste podstawienia na tekście programu, a nie obiekty programu. Stałe w AVR można umieścić w pamięci programu na dwa sposoby - pierwszy - to atrybut PROGMEM, ale potem nie tak łatwo się do nich dostać. Drugi, nowszy i lepszy koledzy AVRowcy zapewne podpowiedzą.

    Mikrokontrolery   18 Sty 2016 18:58 Odpowiedzi: 12    Wyświetleń: 1077
  • Sterowanie matrycą przycisków za pomocą Arduino - jak to zrobić?

    moja zabawkowa Yamaha na której eksperymentuję ma nuty od 41 do 72. Czyli tak tylko dla przykładu, nuta 41 to połączenie w układzie o numerze 12, nuta 42 to 18. Jak to najprościej zrobić? Tu się chyba nie obędzie bez przemapowania nuta->klucz. Najlepiej może w postaci stałej tablicy. Na Arduino przy dużych tablicach powstaje problem i trzeba korzystać...

    Arduino   07 Wrz 2024 07:20 Odpowiedzi: 25    Wyświetleń: 660
  • Odczyt danych powyżej 64kB z PROGMEM w C – jak obsłużyć uint_farptr_t?

    Zastosowałem w innym miejscu, przy wpisywaniu do przetwornika DAC To nie jest zbyt dobre rozwiązanie. Po przekopiowaniu tablicy z FLASH do RAM przeskaluj dane w pętli, a w ogóle to najlepiej byłoby gdybyś już we FLASHu takie dane umieścił.

    Mikrokontrolery AVR   16 Cze 2015 12:53 Odpowiedzi: 33    Wyświetleń: 2238
  • WinAVR: Błąd przy deklaracji tablicy większej niż 32k w ROM

    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 [syntax=c]uint8_t testX [0x8000] PROGMEM = {}; [/syntax]

    Mikrokontrolery AVR   18 Lis 2011 13:15 Odpowiedzi: 12    Wyświetleń: 1868
  • C AVR - Jak stworzyć wielojęzykowe menu w pamięci flash?

    Jednakże potrzebowałbym stworzyć takie menu w którym użytkownik wybiera sobie język i myślałem żeby rozwiązać to w taki sposób, aby każdy z tekstów był tablicą dwuwymiarową... A dlaczego to miałoby nie działać? Po prostu jako tekst związany z daną pozycją menu dajesz wskaźnik do tablicy, a w programie masz zmienną globalną określającą nr języka (indeksu...

    Mikrokontrolery AVR   24 Lut 2016 23:35 Odpowiedzi: 8    Wyświetleń: 1161
  • [avrgcc] Jak wkompilować zewnętrzne pliki jako tablice w czasie kompilacji?

    W zasadzie twoj pomysl jest ok. Ja zrobilbym to tak: plik z danymi: data.txt [syntax=c] 1, 2, 3, 4, 5, [/syntax] plik 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.

    Mikrokontrolery AVR   26 Cze 2015 18:25 Odpowiedzi: 7    Wyświetleń: 666
  • Atmega32: Brak reakcji na przyciski w programie C - analiza kodu

    Dodam tylko że ta tablica nie pomieści tylu znaków: char PROGMEM tab2[] = {"Zmienna:"}; A dlaczego ta tablica nie pomieści tylu znaków? Z czego to wynika że nie pomieści?

    Mikrokontrolery AVR   28 Lut 2011 23:14 Odpowiedzi: 10    Wyświetleń: 1458
  • Jak zwrócić tablicę dwuwymiarową z funkcji w C? Kod i błędy kompilacji

    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 języka C, ale wielce nieoptymalne w przypadku mikrokontrolerów.

    Mikrokontrolery AVR   28 Lut 2013 00:34 Odpowiedzi: 19    Wyświetleń: 4842
  • m8 [c] ATMEL STUDIO - dziwne zachowanie odczyt z PROGMEM

    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ęć ROM. Ogólnie jako const PROGMEM jest sens deklarować dane nieskalarne...

    Mikrokontrolery AVR   26 Gru 2012 22:47 Odpowiedzi: 20    Wyświetleń: 3096
  • [AVR Studio i C] Położenie tablicy danych w pamięci flash

    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 data ani bss (wkońcu została wymuszona inna sekcja), a więc taka...

    Mikrokontrolery AVR   15 Sie 2009 22:13 Odpowiedzi: 6    Wyświetleń: 2765
  • Jakie minimum wolnej pamięci Flash dla stabilności Atmega328P?

    Z tablicy int[] zadeklarowanej jako PROGMEM czyta się inaczej poszczególne elementy, np.:[syntax=c]int p1 = static_cast<int>(pgm_read_word(NTC... + (ADC_Value >> 4)));[/syntax]W poście #12 podałem link do strony, gdzie jest to wyjaśnione. Funkcja pgm_read_word() jest tożsama z funkcją pgm_read_word_near() - jako argument podaje się adres...

    Arduino   03 Lut 2020 19:54 Odpowiedzi: 35    Wyświetleń: 1071
  • [AVRStudio] [AVRStudio][C] Deklaracja zmiennych globalnych w ATMega8 - błąd kompilacji

    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] PROGMEM = { 0b11011101, 0b10000001, // 0 , 1 0b10111100,...

    Mikrokontrolery   13 Lis 2010 00:30 Odpowiedzi: 16    Wyświetleń: 1845
  • AVR [C] - Jak zainicjować tablicę 4D we FLASHU na ATmega16?

    hmm, a nie powinno być: unsigned char klocki [x][y][z][a&... PROGMEM={...};

    Mikrokontrolery   02 Cze 2013 16:43 Odpowiedzi: 4    Wyświetleń: 1983
  • [AVR][C] jak działać ze stringami lub wskaźnikami

    Porównaj, komentarz chyba zbędny. #include <avr/pgmspace.h> const char st_w_RAM[]="abcd"; const 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, 2.4, 3.56};

    Mikrokontrolery AVR   07 Cze 2008 16:44 Odpowiedzi: 35    Wyświetleń: 12601
  • Kopiowanie tablic w ANSI C na mikrokontrolerze m32 - jak to zrobić?

    [syntax=c]void CPY_FLASH_RAM (char *TAB)[/syntax] a do [syntax=c]char BUF_LCD[33] = "a"; char TX1[32] PROGMEM = "abcdefghijklmnop1234567890123456"; [/syntax] się nie czepia?

    Mikrokontrolery AVR   01 Kwi 2011 09:58 Odpowiedzi: 9    Wyświetleń: 1963
  • AVR dostęp do tablicy tablic w pamięci flash mikrokontrolera

    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ę się teraz dostać do elementów tablic array0: [syntax=c] uint8_t val = pgm_read_byte(&arrays[0][arr_counter]);....

    Mikrokontrolery AVR   22 Lip 2021 13:01 Odpowiedzi: 9    Wyświetleń: 783
  • [ATmega8] [ATmega8][C] Nieprawidłowe wyświetlanie tekstu na LCD dip128j-6n5lw

    a co masz w deklaracji tablicy czcionki? taki zapis: static const char font5x8[] PROGMEM = { ... } ???

    Mikrokontrolery AVR   15 Mar 2014 19:07 Odpowiedzi: 11    Wyświetleń: 2707
  • GCC - Błąd inicjalizacji tablicy adresów portów PIN w pamięci Flash

    Ogólnie to jasne, że wiadomo kiedy można sobie pozwolić na usunięcie volatile, jednak zastanawiam się w takim przypadku tablicy adresów portów, hmm. W końcu ten adres nie może się zmienić tylko wartość na porcie. Mogę zadeklarować tablicę typu volatile uint8_t * ale jaki to ma sens? Przecież ta tablica ma specyfikator PROGMEM, więc same adresy nie są...

    Mikrokontrolery   09 Mar 2015 12:12 Odpowiedzi: 11    Wyświetleń: 798
  • Dlaczego wyświetlacz widmowy pokazuje tylko małe litery?

    Czytaj jeszcze raz ze zrozumieniem - dane możesz przechować w pamięci FLASH, teraz są one przechowywane w pamięci FLASH a potem podczas startu procesora kopiowane do pamięci SRAM. Stosując modyfikator PROGMEM, ograniczając typ danych tablicy do uint8_t oraz odczytując dane z pamięci za pomocą pgm_read_byte() możesz wszystko zrobić na Atmega8 - zajrzałeś...

    Mikrokontrolery AVR   08 Mar 2014 22:41 Odpowiedzi: 17    Wyświetleń: 1815
  • [C] Jak zmieniać wartości w tablicy w C bez tworzenia nowych? Mikrokontroler

    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 wydaje się, że const powoduje umieszczenie zmiennej w FLASH (jednak...

    Mikrokontrolery   11 Kwi 2012 07:04 Odpowiedzi: 8    Wyświetleń: 3767
  • Jak zadeklarować tablicę w pamięci CODE w C/C++?

    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.

    Arduino   09 Mar 2015 22:35 Odpowiedzi: 9    Wyświetleń: 747
  • [C] Wypełnianie tablicy uint8_t liczbami 0-9 po deklaracji – jak zrobić to szybko?

    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, ...CIACH..,0x00}; [/syntax] Oraz moja pętelka:[syntax=c] for (uint16_t...

    Mikrokontrolery   10 Cze 2011 22:38 Odpowiedzi: 6    Wyświetleń: 1545
  • GCC AVR - Tablica wskaźników pusta po przekazaniu do funkcji

    Dopiero Twój drugi post pomógł zrozumieć mi problem :) W takim przypadku po prostu musze stworzyć tabele w której najpierw zapisze zmienna a dopiero później będę mógł się do nich odwołać przy pomocy wskaźnika :) P.S. dla sprostowania w/w przykład jest pisany w C dla pc tak więc printf nie ma nic wspólnego z progmem występującym w gcc dla AVR :)

    Mikrokontrolery AVR   09 Sie 2010 21:59 Odpowiedzi: 34    Wyświetleń: 4205
  • AVR w C,brak zrodel wiedzy,zglaszanie tablic problemy!

    Jeśli korzystasz z avr-gcc to aby zapisać tablicę do flasha to musisz doczytać do czego służy PROGMEM. http://www.nongnu.org/avr-libc/user-manu... Co do tej książki to uważaj, bo jest tam masa błędów.

    Mikrokontrolery   27 Lut 2008 23:28 Odpowiedzi: 2    Wyświetleń: 1026
  • [C] Kompresja animacji BMP na Nokia 3310 w C - jak zoptymalizować?

    Proponuje coś takiego: [syntax=c]unsigned int PROGMEM buzia0_w1 [] = {0x02ff, 0x5001, 0x02ff }[/syntax] -zamiana tablicy dwuwymiarowej na jednowymiarową -elementy są dwu-bajtowe i w starszej części jest umieszczona liczba powtórzeń, a w drugiej wartość dla wyświetlacza

    Mikrokontrolery AVR   24 Maj 2011 19:10 Odpowiedzi: 16    Wyświetleń: 5564
  • AVR-GCC: Różne wyniki mnożenia w argumentach funkcji w różnych plikach

    Porobiłem wszystko tak jak trzeba ale mam pytanie. W programie mam przerwanie zewnętrzne. Gdzie takie przerwanie umieścić? Teraz mam tak, że mam plik przerwania.h i tam znajduje się to przerwanie (SIGNAL(SIG_INTERRUPT7){}. Czy dobrze? Nie mam do tego pliku przerwania.c, chyba nie jest potrzebny? Mam też tablicę w pamięci procka (const PROGMEM unsigned...

    Mikrokontrolery   01 Lut 2009 19:47 Odpowiedzi: 55    Wyświetleń: 7139
  • [AVR-GCC] Czy ATmega32 pomieści tablicę 360x3 bajty w RAM? Jak to najlepiej zrobić?

    No skoro masz 2kB SRAM, a tablica zajmuje 1080 bajtów to się zmieści. Jeśli są to stałe to można też je przenieść do FLASH (zobacz progmem). Co do rezystorów podciągających to możesz je włączyć na wszystkich portach. Nie rozumiem o co ci chodzi.

    Mikrokontrolery AVR   10 Lip 2010 15:05 Odpowiedzi: 3    Wyświetleń: 1348
  • Jak działa skanowanie klawiatury matrycowej w C? Co to jest upperNibble?

    możesz zastosować pętlę, np tak: [syntax=c] static const uint8_t rowsel[] = { tu wpisujesz maski bitowe wyboru wierszy } for (....) { PORTx |= maska_wyłączenia_wierszy; PORTx &= rowsel[i]; ... } [/syntax] Na AVR wypadałoby w deklaracji tablicy użyć jeszcze zaklęcia PROGMEM, a przy dostępie do niej pseudofunkcji dostępu do pamięci programu. Szczęśliwie...

    Mikrokontrolery Początkujący   20 Gru 2012 20:07 Odpowiedzi: 16    Wyświetleń: 3018
  • Atmega32A - Konfiguracja PWM do odtwarzania dźwięku

    Na wyjściu dostaje piski i nic więcej. Pomocy :/ Proponuję podejść do tego nieco inaczej. Na początek usuń całą komunikację z kartą SD. W pamięci Flash (tablica z kaluzulą PROGMEM) umieść próbkę sinusa 1kHz - jeden okres by danych nie było zbyt dużo. Napisz fragment programu który miałby ten sinus odtwarzać cyklicznie przez PWM. Tutaj masz prawie gotowca....

    Mikrokontrolery AVR   01 Maj 2013 10:13 Odpowiedzi: 26    Wyświetleń: 5220
  • Tworzenie bibliotek lub odwołania do zewnętrznych plików

    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ć w ten sposób: [syntax=c] const byte one[8] PROGMEM = {0x81, 0x3B, 0x01,...

    Arduino   07 Paź 2019 23:40 Odpowiedzi: 10    Wyświetleń: 747
  • [avr mega8] Jak poprawnie adresować duże tablice w strukturze Font?

    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 i inne zmienne gdzieś muszą się zmieścić.

    Mikrokontrolery   15 Maj 2008 07:35 Odpowiedzi: 4    Wyświetleń: 1505
  • Jak czytać wielowymiarowe duże tablice w PGM SPACE [C]

    Witam, 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: [syntax=c] const uint16_t Tablica1[2048] PROGMEM= {65535,65534......3,2,1,0} const uint16_t Tablica2[2048] PROGMEM= {32768,32767......3,2,1,0} . . . const uint16_t Tablica19[2048] PROGMEM= {0,1,2,3....65534,65535}...

    Mikrokontrolery AVR   09 Kwi 2015 09:41 Odpowiedzi: 41    Wyświetleń: 2772
  • AVR - Jak ogarnąć ostrzeżenie "integer overflow"...

    Witam Kolegów, Dokładnie wiem, co ono znaczy, wiem że zwykle sprawę załatwia rzutowanie typu, ale w definicjach preprocesora nie mogę tego pokonać: [syntax=c] #define VCC 50 #define R1 200 #define R2 220 #define VADC 256*95*R2/(R1+R2)*VCC [/syntax] "warning: integer overflow in expression [-Woverflow]" Potem używam tego w tablicy: const uint8_t Voltages[]...

    Mikrokontrolery   09 Lip 2016 21:46 Odpowiedzi: 22    Wyświetleń: 1425
  • Implementacja wielomianu z Matlab do Atmega w C - jak przeliczyć y z x?

    Tablica w pamięci kodu (z tym, że przykład jest dla char): http://mirekk36.blogspot.com/2013/11/tab... Mając taką tablicę wyszukujesz pomiędzy którymi punktami tablicy leży wartość i liczysz https://pl.m.wikipedia.org/wiki/Interpol...

    Programowanie   18 Sie 2019 11:58 Odpowiedzi: 5    Wyświetleń: 495
  • Zegar matrycowy na atmega328, ds3231 i ds18b20

    Mam mieszane uczucia. Na plus na pewno to, że główne pcb zostało wykonane osobiście oraz, że projekt stanowi skończony "produkt". Starczyło samozaparcia, żeby całość była praktycznym urządzeniem. Z doświadczenia wiem, że ciężko kończyć tego typu projekty. Na minus bałagan w środku, "obciążnik" w postaci radiatora, aż prosi się zastosowanie jakiejś przetwornicy...

    DIY Konstrukcje   21 Sie 2023 06:27 Odpowiedzi: 14    Wyświetleń: 4437
  • Jak ustawić rozmiar stosu w kompilatorze avr-gcc (WinAvr).

    Lepiej wykorzystaj do tego celu pamiec programu , ewentualnie eeprom. Sposob deklaracji tablic dla winavr : dla eeprom : #include <avr/eeprom.h> #define EEPROM __attribute__ ((section (".eeprom"))) unsigned char temp [20] EEPROM ={1,2,3,4,}; dla pamieci programu : #include <avr/pgmspace.h> static unsigned char temp_1 [2] PROGMEM = {1,2,3,4};

    Mikrokontrolery   05 Maj 2005 10:38 Odpowiedzi: 13    Wyświetleń: 3585
  • [C] [C]Lampa RGB na Attiny13 z programowym PWM - ograniczenie liczby kolorów w tabeli

    Z tym że jak wrzucisz do eepromu to ustaw bity BOD. Dlaczego? Dodano po 4 1. Zmień typ dla danych COLORS i brightness z int na unsigned char. Pętla wtedy będzie dla i < 255; i 10 kolorów wystarczy. Mógłbym prosić o wprowadzenie zmiany w kodzie ? Tablicę COLORS umieść w flash przez PROGMEM. Jak wywali błąd to dołącz odpowiedni plik (poszukaj gdzie...

    Mikrokontrolery AVR   16 Lip 2017 21:52 Odpowiedzi: 38    Wyświetleń: 2748
  • Jak poprawnie użyć pamięci FLASH do obsługi tekstów?

    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 <avr/pgmspace.h> int main (void) { static const char...

    Mikrokontrolery AVR   04 Lut 2023 19:52 Odpowiedzi: 14    Wyświetleń: 576
  • ATTiny2313, C – jak przechowywać dużą tablicę w pamięci flash zamiast SRAM?

    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.

    Mikrokontrolery   27 Maj 2006 09:44 Odpowiedzi: 2    Wyświetleń: 1148
  • [AtMega 32] [C] Nieudane ładowanie bitmapy na GLCD ST7565 - analiza kodu

    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 sam z siebie. Spróbuj to zmienić na: dogm_core_data(pgm_read_byte(dpt...

    Mikrokontrolery AVR   30 Gru 2010 16:28 Odpowiedzi: 16    Wyświetleń: 4064
  • [AVR][C]{AtmelStudio] Stała w pamięci programu pod konkretnym adresem

    Użyj sekcji .progmem.gcc - położona jest ona tuż za tablicą wektorów przerwań i standardowo nic w niej nie ma, a więc ma stały dla danego procesora adres początku.

    Mikrokontrolery AVR   18 Lip 2018 20:09 Odpowiedzi: 22    Wyświetleń: 1134
  • Uproszczenie kodu C dla sterowania LED na atmega8 bez wielu delay'ów

    Pisane "z palca" i nie sprawdzane: [syntax=c]unsigned int ledy[100][2]={{1,2},{3,4}... i tak dalej}; //pierwsza liczba w {} to piny portu D, druga liczba to czas opóźnienia, kolejna klamra to kolejna para liczb //100 to ilość par for(unsigned char i = 0; i<100; i++){ PORTD = ledy[i][0]; _delay_ms(ledy[i][1]); }[/syntax] Możesz także umieścić tablicę...

    Mikrokontrolery AVR   04 Wrz 2011 11:37 Odpowiedzi: 22    Wyświetleń: 4111
  • [WinAVR] Jak uzyskać dostęp do struktury w pamięci programu w WinAVR?

    (at)tmf: ...ale autor tematu napisał, że print_str(strr też mu nie działa prawidłowo. Myślę, że prawdopodobnie kompilator ma problem z określeniem rozmiaru struktury i - co za tym idzie - obliczeniem wskaźnika do następnego elementu tablicy struktur. Proponuję dodać w strukturze rozmiar ciągu znaków: Musisz to tylko przerobić na swoje potrzeby, czyli...

    Mikrokontrolery AVR   15 Paź 2012 15:57 Odpowiedzi: 15    Wyświetleń: 2778
  • Obsługa wyświetlacza 4-ro cyfrowego - błąd wyświetlania

    Nawet kompilator ci mówi Elektr_Prakt_2.c:28: warning: excess elements in array initializer Elektr_Prakt_2.c:28: warning: (near initialization for 'g_WzorCyfr') deklaracja poprawna to: uint8_t g_WzorCyfr[10] PROGMEM= ... Oznacza ona że tablica ma 10 elementów, które będą indeksowane od 0-9. W C++ jest tak samo...

    Mikrokontrolery AVR   17 Sie 2009 16:14 Odpowiedzi: 20    Wyświetleń: 2751
  • [AT90s2313] [AT90s2313][C++] Nieprawidłowy odczyt pgm_read_byte() w C++ dla LED 4-cyfrowego

    Wyniki do 1,2,3 i 5 dało się przewidzieć, ale test 4 dużo rozjaśnił: w hex'ie widać, że tablica znajduje się pod adresem 0x252 (ciąg "C0F9A4...") a kompilator wstawia adres 0x60 co może wskazywać, że tablica pomimo zastosowania prog_uint8_t ląduje w pamięci ram (inicjalizowana z pamięci flash) 6/ Spróbuj dodatkowo dodać atrybut PROGMEM 7/ Sprawdź, czy...

    Mikrokontrolery AVR   13 Wrz 2009 18:01 Odpowiedzi: 13    Wyświetleń: 2826
  • [C] - Wskaźnik na tablicę ze zmiennymi typu uint8_t

    Czemu musisz posługiwać się indeksami? Napisz sobie: [syntax=c]void writecos(const uint8_t font[],uint8_t c,uint8_t e,uint8_t i,uint8_t n,uint8_t w) { twi_write(pgm_read_byte(font[c * e + i + (n * w)])); }[/syntax] i wywołuj: [syntax=c]writecos(ssd1306_fonts_0,c,e,i... writecos(ssd1306_fonts_1,c,e,i,n,w): writecos(ssd1306_fonts_2,c,e,i,n,w):[/sy...

    Programowanie   03 Lis 2015 23:23 Odpowiedzi: 4    Wyświetleń: 750