Z przykazań C: 1. Nazwa tablicy jest adresem do jej pierwszego elementu 2. Tablica znaków, to tablica znaków, a string to wskaźnik do pierwszego znaku w ciągu znaków zakończonego znakiem '\0' dlatego proponuję tablicę wskaników do znaku, gdzie każdy z tych wskaźników inicjalizujemy wartością NULL, a string przypisujemy dynamicznie z kopca char *tablica[34][22]...
start: mov dx, al mov ah,9 int 21h Nie rozumiem pytania o konwersje, ale moge podpowiedzieć że podany wyżej kod raczej nie zadziała, bo są w nim 2 błędy, składniowy i logiczny. 1. Nie można skopiować wartości 8 bit do wartości 16bitowej 2. Funkcja 9 int21h przyjmuje w rejestrze DX wskaźnik do tablicy znaków a nie wartość.
A może "buffor_danych" do którego wrzucasz kolejne bajty to też tylko wskaźnik zamiast tablicy (niezainicjowany lub ustawiony na 0)? To tłumaczyłoby dlaczego przypisanie ramka_danych do stałej tablicy znaków daje dobry wynik a ustawianie zawartosci kolejnymi bajtami się nie udaje. (podobnie do poprzedniego błędu) Przy okazji, sizeof(ramka_danych) to...
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...
..... ale nie wiem jak zmienić tablice w samej funkcji (przełączyć ją z jednej na drugą, jeśli wywołamy funkcję z parametrem 1 na końcu). Wystarczy zastosować wskaźnik do tabeli i w zależności od parametru przypisać mu adres [pierwszej lub drugiej tablicy. Co do samego "zdekodowania" danych z tablicy to niestety trzeba się dowiedzieć "co autor miał...
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...
Witam Wydaje się, że najprościej to wykorzystać poniższą strukturę przechowującą parametry danej tablicy ze znakami w pamięci Flash [syntax=c] struct sFont{ unsigned char height; // ilosc linii unsigned char width; // szerokosc char const *font; // tablica znaków }; [/syntax] W przypadku chęci wykorzystania kilku tablic z różnymi rozmiarami, to do funkcji...
Deus, źle zrozumiałeś co to ma robić, strchr znajduje wystąpienie znaku i zwraca wskaźnik na niego, a następnie wpisywane tam jest zero, czyli tak jak powinno być - a twoja modyfikacja niweluje wszystko, bo wstawiasz zero na początku stringa czyli praktycznie kasujesz go. A co do tematu, z tego co rozumiem odczytujesz z urządzenia od 6 do 15 znaków...
Kolejne pytanie: Jeśli chcę odebrać kilka znaków z klawiatury to powinienem wpisać to w jakąś tablicę? Jeśli chcę wysłać do PC cały wyraz to jak to robić? Możesz to zrobić różnie. Zależy czego potrzebujesz i na ile jesteś wprawny w programowaniu w C. W każdym z przypadków trudno jednak będzie się obyć bez tablic dla ciągów znaków odbieranych i wysyłanych....
Nie ma sprawy. :(mam problem... wszystko pieknie działa;)super wrecz. dodałem reszte znaków;)prosze powiedz mi jak dodac znak.. spacji. przerwy miedzy stringami wyrazówSad niemoge tego nigdzie znalezc:)a jest to nie zbedne . Znak spacji ma w kodzie ASCII wartość 32 (0x20). Oznacza to, że w tablicy morseTab pod pozycją 32, czyli: morseTab[32]...
https://obrazki.elektroda.pl/5766737500_... Witajcie moi drodzy. Przedstawię tutaj krok po kroku proces pisania otwartego oprogramowania dla modułu WiFi XR809/XR3 na przykładzie czujnika otwarcia drzwi. Mój firmware dla niego będzie kompatybilny z Tasmota HTTP i pozwoli używać go niezależnie od serwerów producenta. Da nam to również...
https://obrazki.elektroda.pl/9290552300_... Witajcie moi drodzy. Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części poznamy sterownik wyświetlacza LED MM5450, połączymy go z PIC18F2550 i napiszemy od 0 implementację ich komunikacji. Docelowo użyjemy MM5450 do wysterowania wyświetlacza LED 5 na...
(at)ElektrodaBot mam konkretną czcionkę BigFont.c jak w załączniku. Jak ją dodać do tej biblioteki? Bezpośrednia odpowiedź na pytanie Aby dodać plik BigFont.c do biblioteki Arduino TVout, należy: 1. Umieścić plik w folderze biblioteki TVout (np. w folderze z innymi czcionkami). 2. Zarejestrować czcionkę w pliku nagłówkowym (np. font.h) za pomocą deklaracji...
(...) 5) trochę dotycząca pkt.1) jak zrobić czcionkę, w której potrzebują tylko cyfr, lub paru liter (niekoniecznie po kolei wg kodów ASCI, np T, O, M, I), pomyśl o jakichś deskryptorach ułatwiających i optymalizujących takie potrzeby Zaproponuj jakieś rozwiązanie w AVR GCC zgodnie z powyższymi założeniami Projektowanie biblioteki czcionek dla systemów...
Witam. Ostatnio analizuję kodzik z tej stronki: http://hobbyelektronik.org/Elo/AVR/3510i... 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. Tu wygląda...
Proszę o pomoc, bo porady w internecie nie sprawdziły się i kod nadal nie działa. Chcę przekazać z programu głównego do funkcji wskaźnik na tablicę char'ów, w funkcji wywołać realloca, zwiększyć zarezerwowaną pamięć i potem w funkcji zmodyfikować tę tablicę (dołożyć z przodu "0x" a całą resztę znaków przesunąć w tablicy o dwa pola - żeby zrobić miejsce...
Witam. Odbieram w przerwaniu poprzez UART odpowiedzi z modemu. Używam komend AT. W przerwaniu dane z modemu umieszczane są w buforze (pamięć mikrokontrolera) czyli tablicy typu uint8_t. Stworzyłem funkcję którą wywołuję tylko raz w mainie i która posiada w sobie nieskończoną pętlę while. Funkcja ta jako argument otrzymuje wskaźnik na bufor. W pętli...
[syntax=C]char *menu_main[5];[/syntax] W ten sposób deklarujesz tylko tablicę wskaźników na ciągi znaków. Nie jest w żaden sposób alokowana pamięć pod właściwe ciągi znaków, stąd użycie sprintf nad tymi wskaźnikami jest niepoprawne (chyba, że wcześniej przypisano by wskaźnikom jakieś poprawne wartości). Ostatni kod, w którym przypisujesz ciągi znaków,...
Nie. W ten sposób rezerwujesz sobie po 100 wskaźników w tablicach. Tablicę znaków deklaruje się prościej: [syntax=c]char tekst[100]; char zaszyfrowany[100]; [/syntax] Użycie nazwy tablicy (bez indeksu) to to samo, co użycie wskaźnika. Więc, po prostu: [syntax=c]scanf("%s", tekst); printf("%s", tekst);[/syntax] Mała dygresja: Po co ci dwie tablice -...
wsk "cos tam" jest napisem stałym typu const char[8], próbujesz przypisać wskaźnik do tego napisu do zmiennej char[20]. Mają inne typy - inne rozmiary - i nie ma wbudowanego operatora =, który by implementował kopiowanie. Zamiast tablic znaków może lepiej użyć std::string? Wtedy takie coś by zadziałało, bo std::string ma operator=(const char*);
czym to jest spowodowane może ktoś wie?? Tak, ja wiem. ... Co rozumiesz pod pojęciem "meni"? "meni" jest wskaźnikiem na znak. W przypisaniu do "meni_glowne" wskaźnika od malloc uzyskujesz miejsce na 5 znaków (zresztą sam jawnie napisałeś: 5*sizeof(char) ) - indeksując "meni_glowne" wychodzisz poza zakres (dla 5 elementów są one od 0 do 4) dodatkowo...
(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...
Kompilator prawidłowo założył, że te ciągi nie będą zmieniane, bo nie mogą. Skoro zmienna jest typu char*, a nie const char*, to kompilator nie może sobie "założyć", że łańcuch tekstowy wskazywany przez ten wskaźnik nie może być modyfikowany. To tak, jakby założyć, że elementy tablicy znaków wskazywanych przez char* czy char[] nie mogą być modyfikowane....
Witam, Robię coś w rodzaju konsoli na lcd nokii (6 linii po 14 znaków) i nie wiem jak najsprawniej dodać jedną linię tekstu na dole ekranu, jednocześnie przenosząc wyżej poprzednie linie i tracąc pierwszą. stworzyłem zmienną przechowującą zawartość ekranu: unsigned char LCD_Content Dodano po 15 znalazłem coś takiego: http://www.nongnu.org/avr-libc/user-manu...
Jeśli FRAME_SIZE ma wartość 22, przerwanie wykona się gdy wyślę 22 chary przez UART ? A jeśli wyślę 21 to gdzie one będą się znajdowały? W jakimś buforze ? Obsługą przerwania jest sama funkcja HAL_UART_Receive_IT() ? Po wysłaniu tych 22 znaków przepisze ona je do tablicy na którą podałem wskaźnik ? Czy obsługa przerwania zawiera się może w innej funkcji...
Z przetwonika ADC otrzymuję wartość 16 bitową (ADC1->DR), którą chce następnie wyświetlić na wyświetlaczu. Funkcja wypisująca stringi na LCD pobiera wskaźnik do tablicy, ciagu znaków void Text (uint8_t *str) Wywołanie: Text ("dowolny tekst"); Potrzebuje w jakiś sposób przekonwertować typ 16-sto bitowy do tablicy znaków które...
nie możesz przesuwać elementów tablicy. Musisz wziąć wskaźnik na typ słowny (dwa bajty) i przypisać do niego adres elementu tablicy (czyli de facto adres tablicy + przesunięcie) i dopiero na takiej wartości dokonać przesunięcia. Inaczej kompilator widzi, że pracujesz ze słowem i nie pozwoli wyjść "poza" element tablicy. Przesunięcie musi być zrealizowane...
Witam. Mam do napisania program, oto treść 'zadania' : Zdefiniuj typ strukturalny zawierający 3 pola (int, char, double ). Następnie zaimplementuj funkcje do obsługi zdefiniowanego typu: 1. losowanie – funkcja: a) pobiera jako argument liczbę N struktur, które mają zostad utworzone; b) dynamicznie alokuje pamięć na tablicę N wskaźników na struktury;...
Program pobiera z pliku dwa dane do dwóch zmiennych - int N i char X. Tworzy tablicę N- elementową, potem alokuje tablicę N wskaźników na struktury i umieszcza je w tej tablicy. Struktura skłąda się z pola int i, char c oraz float f. Pole int jest losowane w zakresie -1000 do 1000, pole char to losowy znak wielkiej litery z zakresu od B do X, pole typu...
char i unsigned char to w tym wypadku ten sam typ (domyślnie AVR Studio kompiluje z -funsigned-char). Jak już to w takich wypadkach kompilator zgłasza ostrzeżenie, a nie błąd. Błąd zgłasza np w przypadkach, gdy funkcja wymaga wartości, a dajemy jej wskaźnik lub odwrotnie, czyli beznadziejnych. O sensie (lub jego braku) podawania jako argument funkcji...
Witam W ramach zaliczenia mam do stworzenia projekt na bazie stm32f407 (płytka discovery) który będzie bazował na free rtos. Będą wątki sprawdzające stan przycisku[1], poziom napięcia[2] oraz wątek[3] tzw loga który będzie przez dma wyrzucał ciągi znaków przez porty szeregowy. Bez rtos sprawa wydaje mi się banalna lecz przy rtos mam wątpliwości merytoryczne....
Tylko tutaj wymiataczy się wypowiada, a nikt nie zwrócił uwagi na niezwykle istotną sprawę. Przekazanie tablicy : char text[2]={'o','k'}; do funkcji LCD_WriteText, poza wyświetleniem napisu "ok" objawi się również wyświetleniem dalszej zawartości pamięci RAM, aż do napotkania pierwszego bajtu o wartości zero. Po prostu funkcja przyjmuje...
nie jestem tempakiem i to jest . Jeżeli nie miałbym tego to by wszystko sie posypało a nie mam problem z odczytaniem tylko z tym Open... to moment - nie masz problemu z odczytem, tylko z open? nie rozumiem... i w której linijce ten bład? Przeczytaj w pierwsze code w moim poscie a sie kapmiesz o co chodzi;P ifstream infile; int rozmiar = 1000; //dla...
czyli jesli dobrze rozumiem void zapamietaj (char * edit_txt) { strcpy(nazwa_w_klasie , edit_txt)} ok, tylko jak mam teraz przechwycić tekst z edita? Tak? try { string tabl_char=Edit1->Text; } //potem gdzieś dalej... void zapamietaj (char * edit_txt) { tabl_char=&edit_txt strcpy(nazwa_w_klasie , edit_txt) } gdzie: nazwa_w_klasie - tablica char np na...
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...
Skonwertować możesz przy użyciu sscanf podając jako wskaźnik na ciąg znaków miejsce, w którym powinna się zaczynać dana liczba. Ale najpierw musisz się upewnić, że odebrałeś pełne dane. Zapisuj je w tablicy, a nie w pojedynczej zmiennej char.
Między "???????" a PYTANIE dopisałem pewne treści!!!! Wiem, ze pod char *opis nie jest umieszczany cały tekst, tam jest umieszczany dwubajtowy wskaźnik do początku tego tekstu. To jest ta sama zasada jak w const char *napis menu pozycja_nr to to samo co napis menu pozycja_nr to to samo co napis Pomiędzy ??????? a PYTANIEM opisałem co odkryłem pod tym...
DamianS1985 ---> a widzisz gwiazdkę w funkcji nvsinc albo tej mojej przed drugim parametrem ??? co ona oznacza? - ona oznacza wskaźnik. Wskaźnikiem może być sama nazwa tablicy np bufora na znaki ASCII. Tylko musi to być sama nazwa tablicy bez nawiasów albo trzeba użyć operatora & żeby użyć nawiasów. np: char liczba_ascii[20]; uint32 liczba =...
No nie, nie mogę... Tak - wiesz że się mylę... Zachodzi istotna różnica między takimi definicjami: char amessage[] = "naszedł czas"; /* tablica */ char *pmessage = "nadszedł czas"; /* wskaźnik */ amessage jest tablicą wystarczająco dużą, aby pomieścić swój inicjator, czyli ciąg znaków zakończony znakiem '\0'. Poszczególne...
Witam Kolegów, Przyznać muszę, że bez problemu robiłem już coś takiego a tym razem pomroczność jasna zasnuła mi oczy i nie wiem, gdzie jest błąd. Mam następujące tablice we flashu: [syntax=c] char menu1[] PROGMEM = "MENU 1"; char menu2[] PROGMEM = "MENU 2"; char menu3[] PROGMEM = "MENU 3"; char menu4[] PROGMEM = "MENU 4"; char* menus[] PROGMEM = {menu1,...
lcd_string jak widać w kodzie potrzebuje jako parametr wskaźnik na tablicę znaków. Czyli nie to co zawiera UDR - znak. Potrzebujesz użyć funkcji wyświetlającej znaki - poszukaj. Albert
Jest to modyfikacja tego co jest na stronie http://www.instructables.com/id/Propelle... #define LEDs_PORT PORT_WYŚWIETLAJĄCY_8BITÓW_ZA_POMOCĄ_LEDÓ... (domyślnie: PORTA) led(0xXX) ; -wyświetl ledami 8 bitów z podanej liczby i zaczekaj chwileczkę - delay(); . display_list(czy_kierunek_wskazówek); - czy_kierunek_wskazówek przyjmuje true...
Problemów może być sporo ja bym jednak zaczął od zmodyfikowania kodu odpowiedzialnego za komunikację zarówno po stronie PC jak i AVR. Wiem, że to brzmi mało pocieszająco ale gwarantuję, że efekt końcowy będzie zadowalający. Po pierwsze zrób jakąś strukturę ramki, która ma "wyraźny" początek i koniec. Po to mamy do dyspozycji w tabeli ASCII znaki receive_text()...
Odczytanie z pamięci programu nie jest tak proste jak z pamięci RAM. W GCC do odczytywania tej pamięci stworzono specjalną funkcję pgm_read_byte, która jest (tak myślę) najbezpieczniejsza do operacji na pamięci programu. Teoretycznie wykorzystując wskaźnik do pamięci programu i traktując go jako tablicę (jak to zrobiłeś) powinno działać, ale widocznie...
Bez przerwań, z aktualizacją w czasie rzeczywistym opisów pozycji menu, dowolny poziom komplikacji menu można rozwiązać za pomocą dwóch prostych rzeczy: wskaźnika i wskaźnika na funkcję. Każda pozycja menu powinna zostać zapisana jako jedna struktura. Struktura taka posiadała by 3 wskaźniki na inne struktury tego samego typu (pozycja nadrzędna (tj powrót...
Krótko - wszystko jest nie tak. Po pierwsze zastanów się czy chcesz modyfikować zawartość tablicy (napisywać istniejący tekst), czy przestawiać wskaźnik (pokazywać gotowe teksty, wcześniej przygotowane). Twój kod wygląda jakbyś chciał użyć drugiej wersji, ale to pewnie nieświadomie, bo w ten sposób raczej nie uda ci się wyświetlać wartości liczbowe...
możesz pobierać pojedyncze znaki tak: char c; cin.get(c); całość w pętlę while wrzucasz. np string bufor; cin.get(c); while(c!=' ' || c!='\n') { bufor+=c; cin.get(c); } hm... a jeśli koniecznie nie chcesz stringa tylko tablicę char, to widzi mi się dynamiczne alokowanie pamięci, bo nie wiesz jaka będzie długość wiersza....
Ja mam podobny problem. Mam pytanko czy jeżeli już wykorzystam procedurę przerwania od UART Receive to odczyt tablicy znaków powinienem umieścić w obsłudze przerwania czy wystawić flagę która będzie sprawdzana w programie głównym. Aktualnie odczytuje dane w przerwaniu a cały string zapisuje do tablicy. Wysyłam napis w celu kontroli (czy dobrze odebrałem)...
Witam, Kolego kazzik87, troszeczkę nie zrozumiałeś mojego problemu. [syntax=c] temp = pgm_read_word(&menu[wiersz]); [/syntax] Wyżej wymieniona linijka będzie powodować przeskakiwanie po kolejnych elementach tablicy (struktury) menu. Moim problemem jest to, że chce wyświetlić tekst zawarty np: [syntax=c] menu[5].linijka1_tekst[wiersz]; //wiersz powodowałby...
1. Imho to właśnie dobrze, że fixed nie jest zaimplementowany - nie jest jako taki potrzebny. W silniku wyświetlania może być funkcja, która odpowiednio dobiera odstęp jednego znaku od drugiego, tak aby user miał wrażenie, że dany znak jest zawsze w tym samym miejscu, a nie zależnie od szerokości znaku poprzedniego. W mojej implementacji tak mam -...
OK, już piszę jak to działa. W moich programach pod mikrokontrolery format tablicy ze znakami jest taki: na początku, pod offsetem '0' wartość która informuje o wysokości czcionki (czyli ile znaków składa się na jedną czcionkę. Pod offsetem '1' znajduje się dana informująca o szerokości znaku, i dalej wartości wiersz po wierszu. Tych danych jest dokladnie...
tablicy wskaźnik wskaźnik tablicy wskaźnik tablicy obiektów
ładowarka piszczeć schemat regulatora skuterze schemat baterii rowerowej
reset pieca buderus bateria milwaukee
Fiat Ducato 3.0 - Nierówna praca silnika i dymienie Łącznik gaźnika do piły Partner 545 - gdzie kupić?