Proszę o pomoc, bo nie rozumiem dlaczego kompilator zwraca błędy. W programie tworzę strukturę, która zawiera tablicę struktur. Innymi słowami: [syntax=cpp]Struktura 1 { element1; element2; }[/syntax] [syntax=cpp]Struktura2 { wskaźnik do tablicy, która zawiera struktury 1 }[/syntax] W programie głównym tworzę wskaźnik do struktury2 i przydzielam mu...
To nie tablica tylko struktura. Ponieważ tworzysz ją na stosie to jej wartości nie są ustawiane w żaden sposób. Są niezdefiniowane i mają taką wartość, jaka akurat w danym momencie jest w obszarze pamięci jaki zajmuje owa struktura. Nie używam tej biblioteki więc nie odpowiem na pytania jak się zachowa gdy nie wypełnisz wszystkich pól struktury, tam...
Witam Zamieść cały kod, będzie łatwiej. Być może problem jest gdzie indziej, takie błedy sugerują zazwyczaj, że masz gdzieś błąd w dyrektywach #define. Wiem, że tak byłoby najłatwiej lecz kod mam rozbity na prawie 30 plików. Ale dzięki za trop. Spróbuję przeszukać jeszcze raz wszystkie ostatnio modyfikowane. Teraz żałuję, że nie uruchomiłem porządnie...
Dlaczego w ostatniej linii tego kodu: ..\src\program.c:95:1: error: initializer element is not constant ..\src\program.c:95:1: error: (near initialization for 'arr ??? Chce po prostu zainicjować tablice struktur jakimiś wcześniej określonymi strukturami (const) a tu dostaje wyraźny błąd że moje strukturki nie są const. Proszę o pomoc. Problem moge rozwiązać...
Mam np. następującą strukturę: [syntax=cpp-qt] struct telefony { char marka[20]; float przekatna_ekranu; float waga; }; [/syntax] Teraz deklaruję oraz inicjalizuję tablicę struktur o nazwie np. nokia: [syntax=cpp-qt] telefony nokia[3] = { {"6300", 2, 91}, {"N82", 2.4 , 114}, {"Lumia 520", 4, 124} }; [/syntax] A jak najwygodniej zrobić podobną inicjalizację,...
Tomqu z podanych przeze mnie linków ściągnij przykład 04 i podmień w nim main.c na: [syntax=c]#include"main.h" //**************************************... #define BUF_SIZE 8 // definiujemy bufor o rozmiarze 8 bajtów (musi byc potega dwójki dla tego sposobu!!!) // definiujemy maskę dla naszego bufora #define BUF_MASK...
Problemem jest char *cmd[]; - to oznacza tablicę wskaźników na char, a nie wskaźnik na char. A skoro tablica o nieznanej liczbie elementów to wszystko co masz po przecinku to kolejne elementy tej tablicy. Czyli usuwasz [] lub nazywasz pola, np. .ptrF=.
Witam. Muszę napisać program przetwarzający obrazy pgm. W programie obraz ma być przechowywany w dynamicznej tablicy. Wszystko szło obrze do momentu gdy w funkcji progowanie muszę zmniejszyć wymiary obrazu oraz wart piksela zależy od dwóch sąsiednich pikseli. Problem pojawia sie w tym fragmencie. *wymyy-1 powoduje pojawienie się ukośnych lini a tab...
Własnie plik nagłówkaowy to klasa 1.h class B{ .... int A[5]; } 1.cpp B::B() { A[5]={1,2,3..}//nie praidłowo A[]={1,2,3..} //nie prawidłowo A[0]=1; //poprawnie A[1]=2;//poprawnie } tylko chciałem tak zainicjalizowac bo to bardzo duża tablica struktur i inicjalizacja element po elemencie strasznie wydłuży mi cały program (wydłuży o ok 1000 linijek kodu)...
Witam. Mamy duza tablice: powiedzmy : char tab[1000]; //i tablice mapujaca : char map[256]; int offs[256]; char widt[256]; sa wypełnione jakimis bajtami. jest sobie struktura Font ktora pokazuje na te tablice: struct Font{ char* tablica; int * offsets; char* maps; char* w; }; mamy teraz funkcję: do ktorej...
Ale się nakombinowałeś :). A więc tak: typedef struct { char *opis; uint8_t tab_arg[2]; } kl_menu_pozycja; const kl_menu_pozycja menu_pozycja_nr[2] PROGMEM = { {"telefon", {11, 12}}, {"rower", {23, 24}} }; Niestety nie możesz deklarować ciągu znaków "telefon"...
Jednak się da, bez konieczności tworzenia osobnych struktur i wpisywania nazw tych struktur w inicjalizacji innych struktur :) Nie wiem czy wszystkie kompilatory to zaakceptują.. typedef struct { u8 flags; // BTN_TRANSPARENT | BTN_TOGGLE | BTN_VISIBLE u16 y_size; u16 x_size; const u8 *file; } btn_vars_t; // STALA struktura we flashu... typedef...
(at)mas24 Nadal nie masz nigdzie rozmiaru (całej tablicy) Twojego fonta. Dodaj go do struktury FontDef_t i przy inicjalizacji wpisz tam rozmiar. Informacje o czcionce mogą być const: LCD_PutChar powinieneś skorzystać z informacji o rozmiarze fonta (np aby sprawdzic czy dany znak masz w swojej tablicy). Zauważ również małą różnicę pomiędzy fontem 8x8...
inicjalizuj zmienne, tak jak napisał Tobie skynet. Ponieważ jest to zmienna statyczna, inicjalizacja nastąpi tylko raz w startupie (kod wykonywany przed main). Wygląda to bardzo podobnie, jak by to była zmienna globalna, tylko że sam kompilator ogranicza jej widoczność.
Przyczyna leży w błędnym użyciu funkcji srand . Reinicjalizujesz generator pseudolosowy zwykle tą samą wartością, jeśli wszystko wykonuje się poniżej sekundy. Inicjalizację powinieneś wykonać jednorazowo.
O to chodzi że nie można utworzyć partycji bez utworzenia tablicy alokacji. odwrotnie - tablicę alokacji plików tworzysz po utworzeniu partycji i to tylko w przypadku FATu. Niby jak mam cokolwiek zapisać, skoro nie można go zainicjować. - to świadczy o problemie z pamięcią. Ponadto skoro HD Tune przeskanował całą pamięć flash, to musi być dostępna?...
Na czym polega - w jaki sposób Secure Erase może rozwiązać te problemy? - czy do tego jest konieczne Secure Erase? Dlaczego zwykłe usunięcie lub sformatowanie partycji miałoby nie wystarczyć? - w jaki sposób? Secure Erase jest bardziej zaawansowanym procesem niż zwykłe formatowanie lub usuwanie partycji. Oto różnice i powody, dla których może to być...
Jedną ze strategii szybkiego wdrażania nowych produktów wbudowanych na rynek jest wykorzystanie zunifikowanych platform. Mając plan działania identyfikujący rozwiązania, które zostaną wpuszczone do obiegu, np. w ciągu najbliższych kilku lat, można z powodzeniem stworzyć ww. ujęcie. Ponieważ różni klienci chcą nieco innych funkcji, konfiguracji i dostosowań,...
Nic jak nic:?: Podstawowe zadania biosu. 1. Załadowanie BIOSów urządzeń - zanim BIOS wykona swój kod, uruchamia znalezione BIOSy innych urządzeń zainstalowanych w komputerze. 2. Przeprowadzanie po włączeniu komputera testów systemu (tzw. test POST - Post On Self Test) - sprawdzenie poprawności funkcjonowania podstawowych urządzeń systemu i danych zapisanych...
Witam, Próbuje usunąć kilka warningów wyrzucanych przez kompilator, tyczących się przypisywania i inicjalizacji niewłaściwych typów ( brak rzutowania ). Nie jestem jednak pewien czy dobrze wykonuje rzutowanie. Mógłby ktoś rzucić okiem? 1. Przypisanie do wskaźnika na funkcję innego typu wskaźnik na funkcję: typy wskaźników: - void (*callback)(uint8_t,uint16_t)...
Tak wracając do tego off-topica - o ile w standardzie gnu89 nic mi nie brakuje, to zostałem zapewne jednym z pierwszych orędowników najnowszego standardu c++11 (czy z racji wersji kompilatora c++0x) jak zwykle w odmianie gnu++11 (gnu++0x). W najnowszej odmianie tego języka jest parę naprawdę fajnych rzeczy, jak na przykład ujednolicenie inicjalizacji,...
Jakiś czas temu trafiłem na stronę www.whiteelectronics.pl której autor jest polskim dystrybutorem budżetowych paneli operatorskich DGUS. Z ciekawości nabyłem jeden z tych wyświetlaczy ( Aby moja biblioteka była jak najbardziej przyjazna postanowiłem, że: - umieszczona będzie w niej jedna zmienna określająca ilość zmiennych jaką wymieniamy się z panelem,...
Tak ostatnio wzięło mnie na przemyślenia. Zacząłem zastanawiać się nad poleceniem format. Często zdarza się iż polecenie to użyte nierozważnie powoduje nagły przypływ strachu i myślenie o utraconych danych. Znalazłem pewne opisy mówiące o tym poleceniu ,które mogą wyjaśnić jak działa to polecenie. Oto one : Formatowanie wysokiego poziomu. Polecenie...
Kurs: C mamy typy: -podstawowe: typy znakowe, całkowite i rzeczywiste -pochodne: wskaźnikowe, tablice, struktury, unie. Typy i zmienne całkowite Rozmiary zmiennych danego typu Użycie powyższych typów w połączeniu z signed, unsigneddaje, short i long daje nam różne możliwości Typy i zmienne rzeczywiste Pisząc program deklarujemy sobie zmienną wybranego...
Niektóre narzędzia pozostawiają wiele do życzenia. Można mieć setki opcji, ale jeśli te opcje nie są opisane, albo opisane lakonicznie, bo narzędzie nie pozwala na obszerny komentarz, to tak naprawdę niczego to nie ułatwia. Trzeba się domyślać co autor miał na myśli, albo szukać gdzieś w zewnętrznej dokumentacji, jeśli w ogóle ona istnieje. Jeszcze...
Tworzenie aplikacji użytkownika w C++ ma wiele zalet, więc nie jest zaskakujące, że język ten staje się coraz bardziej popularny wszędzie, w tym w systemach opartych na małych mikrokontrolerach. Projekt „mbed” jest w pełni skoncentrowany na tym języku. Wiele RTOSów zapewnia warstwę kompatybilności z C++, ale w przeciwieństwie do „dużych”...
Tak jak w temacie, mam nadzieję, że coś pomoże. Komunikaty przekopiowane żywcem z forum sklepu PCProjekt. 0. 0x0000 Operacja zakończona pomyślnie. 1. 0x0001 Niewłaściwa funkcja. 2. 0x0002 System nie odnalazł określonego pliku. 3. 0x0003 System nie odnalazł określonej ścieżki. 4. 0x0004 Otwarcie pliku jest niemożliwe. 5. 0x0005 Brak dostępu. 6. 0x0006...
Witam W dalszym ciągu należy jednak rozróżniać Low-Level Format od formatu pod DOS-em czy Windows. Istnieją różnego rodzaju programy typu Low-Level Format nie do końca przetestowane, o bliżej niezbadanych możliwościach wyrządzenia szkód na nowszej generacji dysków IDE. Większość dysków nowej generacji nie da takim programom dotępu do swojego kontrolera...
Witam. W czasie przerwy w pracy stworzyłem grę wąż. Gra została napisana w języku ST na sterownik Mitsubishi serii FX3GE bądź sterowniki seri L po konwersji. Do sterowania i wizualizacji grafiki użyłem panel HMI Mitsubishi GT2710. Bardzo prosto można zastosować praktycznie dowolne HMI, gdyż plansze stanowią obiekty typu lampa. Uważam że stworzenie...
"Łomatko nie trzeba być geniuszem " ,którego użył "studisat" jest obraźliwe i tylko zaniża poziom forum "dziwną " polszczyzną tak jakby było pisane przez dziecko ,a nie poważnego człowieka. A co jest w tym obraźliwego? Jakbyś pomyślał to byś doszedł do identycznych wniosków. Procesor tego tunera mniam mocy na przerabianie formatów danych. Prędzej obraźliwym...
Witajcie moi drodzy. Przedstawię tutaj teorię i praktykę implementacji wsparcia protokołu TuyaMCU. TuyaMCU to protokół oparty o UART, służący do komunikacji modułu WiFi z głównym mikrokontrolerem urządzenia Tuya. Protokół ten wykorzystywany jest w wielu produktach IoT, m. in. w ściemniaczach, w czujnikach temperatury/wilgotności/itd. z wyświetlaczem...
Zagląda ktoś do tego tematu?? Może ktoś zagląda, ale Ty na pewno nie zastosowałeś wiedzy którą dostałeś. Z tego powodu zostaną tylko rady w stylu Zaquadnik , którego pomysł jest idiotyczny. BlueDraco powiedział Ci co zrobić, aby obsłużyć przełączanie/wybór programów. Ty zrobiłeś obsługę przycisku w funkcji obsługi przerwania generowanego przez drgające...
Udało mi sie pójść krok dalej, robot przestał wariować, ale kiedy próbuje wysłać mu coś przez RSa, nic się nie dzieje. Ogólnie kiedy włączam robota zapala się lampka przy RS, która odpowiada wysyłanie, a kiedy podłączam kabel do RSa to zapala się też lampka od odbioru. Kod z robota: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h>...
Witam Zmagam się z akcelerometrem ADXL345 + STM32F103. Połączenie po SPI. Otrzymuję na wyjściu wartość przyśpieszenia w kodzie U2. Zapisana jest na 13 bitach, w dwóch rejestrach 8 bitowych. Po odebraniu najbardziej znaczące przesuwam << 8 i łączę z mniej znaczącymi. Problem polega na tym, że wciąż otrzymuję wartość dodatnią, mimo że na najbardziej...
Dziękuję za pomoc. Wykorzystam jednak liczby zmiennoprzecinkowe typu float. Program będzie bardziej obszerny oraz zapewne wolniejszy niż w przypadku, kiedy wykorzystałbym typy stałoprzecinkowe, lecz przy tak niskiej częstotliwości próbkowania mikrokontroler bez problemu powinien nadążać przy przetwarzaniu danych. Zmodyfikowałem program. Tym razem zastosowałem...
Ostatnio mialem sprawdzian teoretyczny (o.O) z programowania. Nasza facetka jest nieogarnieta.. wogole szkoda gadac... Ale do sedna, na sprawdzianie padlo kilka dziwnie sformulowanych pytan, chcialbym aby doswiadczeni uzytkownicy podali mi na nie prawidlowe odpowiedzi. Do wyboru prawda lub falsz: 1.Kompilator tworzy kod wykonywalny na podstawie programu...
Jeżeli masz chęć, to możesz wszystko napisać sam stosując się do tego: 1. Inicjalizacja karty (ew. error service). 2. Odczytanie sektora (bloku) 0x0000:0000 (ew. error service). 3. Wyłuskanie danych dotyczących struktury plików i początku partycji (ew. error service). 4. Wyłuskanie wielkości sektora, klastra, początku tablicy FAT i obszaru danych (kilka...
Nieco podłamany tematem kol. (at)PiotrLenarczyk postanowilem jednak napisac jednak trzeci krótki prosty mikro poradnik dotyczący startupu. Wszystkie dywagacje będą dotyczyć C i najbardziej popularnego wśród hobbystów i nie tylko gcc. Standard C wymaga aby zgodny (nieco upraszczając) ze standardem toolchain ma: 1. Zapewnić obserwolną zgodność działania...
Wszytko odbywa się w C na AVR :) Zrobiłem strukturę zawierajacą tablice unsigned char typedef struct {unsigned char a[5]} _40bit; Inicjalizacja wzkażnika w tym typie: _40bit *xram = (unsigned int *) (XRAM_start_pointer); W każdej 40 bitowej komórce chce umieścić 4 liczby 10bitowe. Nie chciałem allokować tego po 16 bitów...
Witam Przedstawiam prosty w budowie układ elektronicznego termometru z wyświetlaczem LED i sondą temperatury. Jakiś czas temu popełniłem podobną konstrukcję (jest w dziale Niedokończone: Koncepcja Układ jest zbudowany wokół mikrokontrolera AT89C2051 , do którego są podłączone: układ resetu układ zegara kwarcowego magistrala 1-wire :arrow: czujnik DS18B20...
Program IAR jest jednym z podstawowych, dostępnych narzędzi do tworzenia oprogramowania na mikrokontrolery. Posiada kolorowe i wygodne środowisko graficzne, wraz ze zestawem zoptymalizowanych, standardowych bibliotek. Poniższy samouczek ma na celu pokazanie, jak skonfigurować te środowisko do wydajnej pracy. W autora praktyce sporym utrudnieniem są...
Wlasnie piszę ISR(ADC_vect) i czytam o calkowaniu wiec mysle że za niedlugo wrzucę częśc kodu. Dodano po 59 Napisalem początek przerwania dla ADC przy 128 probkach + calkowanie. Czy dobry kierunek obrałem? Dodano po 2 Dodaje calość tego co wykonalem main.c [syntax=c]int main(void) { sei(); DDRA=0x00; DDRB=0xFF; DDRC=0xFC; DDRD=0xFF; PORTA=0x00; PORTB=0x00;...
Korzystam z: Układ STM32 P103 (procesor STM32 F103 RBT6) Programator ARM-USB-OCD-H Środowisko CrossWorks v2.1.1 Problem: Pisząc własną obsługę USB wzorowałem się na przykładzie dla Keila (USB HID) i paczce z przykładowymi programami do USB ze strony Olimexa dla układu STM32 P103. Pierwszy (dla Keila) nie działał (operował na innych PINach itp.) ale...
Moduły Wi-Fi Atmel WINC1500 dedykowane dla aplikacji IoT cz. II. W poprzednim odcinku Czujnik temperatury wysyłający dane z wykorzystaniem WiFi. Konfigurację sprzętową pozostawiamy bez zmian, podłączony pozostaje moduł WINC1500 oraz I/O1. W pliku demo.c w funkcji demo_start() dodajemy inicjalizację czujnika temperatury at30tse_init();. Następnie deklarujemy...
Żeby kontroler wystawiał na interfejsie zewnętrznym dane w odpowiedni sposób (w postaci sektorów LBA), musi dysponować odpowiednimi danymi pozwalającymi na powiązanie adresacji LBA z wewnętrzną adresacją fizyczną układu(ów) NAND. Wystarczy, że zajrzysz do jakiejkolwiek dokumentacji jakiegokolwiek układu NANDowego, a zobaczysz, że adresacja odbywa się...
Przykłady często pokazują "jak" używać API, ale nie "kiedy"; w dodatku są tak proste (jak to przykłady) że użycie danego API nie jest potrzebne. Pule to zwyczajne alokatory pamięci. Używa się ich gdy planuje się alokację oraz zwalnianie pamięci. Dwa trochę sztuczne przykłady: - aplikacja z wątkami tworzonymi przy starcie i nie kończącymi się - pamięć...
Witam! Od jakiegoś czasu bawię się obsługą kart SD przez SPI na procesorze ARM7. Mam tego typu problem, iż nie mogę zainicjować karty SDHC nie odpowiada mi na komendę ACMD41(ciąglę jest w stanie idle). Czy ktoś wie w czym może być problem ponieważ standardowe karty SD w wersji 2.0 działają bez problemu natomiast SDHC za żadne skarby nie mogę ożywić....
Witam :) Zrobiłem układ, którego głównym elementem jest uC Atmega 8. Problem w tym że posiada ona w swojej strukturze tylko jeden port USART. W mojej aplikacji posiadam dwa urządzenia które komunikują się wykorzystując właśnie ten interfejs. Dodatkowo jedno z nich zasilane jest napięciem 3,3 V (odbiornik GPS) drugie natomiast 5 V (telefon). Analizując...
Witam, tworzę aplikację komunikującą się z urządzeniem za pomocą komend AT. Po przewertowaniu połowy internetu, przeczytaniu i wykorzystaniu przykładów z książki Daniluka "RS232C Praktyczne programowanie ..." nadal mam problem z właściwym odbiorem danych. Na obecną chwilę opierając się głównie na przykładach z w/w książki potrafię wysłać komendę/zapytanie...
Witam Kolegów Ostatnio zachciało mi się zmienić podejście do tworzenia menu. Do tej pory realizowałem je na konstrukcjach switch-case. Jednak ten sposób jest dość uciążliwy, jeżeli menu ma być mocno rozbudowane, ma posiadać submenu itp. Postanowiłem dokonać przesiadki na bardziej przyjazny sposób tworzenia menu. Odpowiedź była jasna: tablice, struktury...
I to wszystko. ... jest źle (; Zastanów się, co się stanie, jeśli któraś z funkcji które umieszczasz w tym stałym obszarze wywołuje jakąś inną funkcje, która jest w obszarze "nie-stałym". A raczej na pewno jakąś w końcu wywołuje, np. memcpy() lub memset(), które mogą być wywoływane przez kompilator niejawnie np. przy inicjalizacji struktur czy tablic......
Witam, mam problem z przesłaniem pliku do dekodera VS1011, stworzyłem funkcję ,lecz niestety udaje mi się odtworzyć kilka ms pliku mp3. Niestety nie mogę powiększyć aktualnej tablicy ze względu na przekroczenie pamięci "stack overflow". Potrzebuje porady jak można w inny(lepszy) sposób napisać funkcję by odczytać cały plik dźwiękowy zapisany na karcie...