Nie musisz wywoływać ponownie, ponieważ w pętli sprawdzasz ten sam bufor pamięci, który jest wypełniany podczas przerwania. Ważne jest, aby bufor zadeklarowany był z modyfikatorem volatile, np. volatile uint8_t bufor[50];
nazwa tablicy jest wskaźnikiem na jej pierwszy element. funkcje zadeklaruj jako ...(unsigned char* sec) i wywołuj ...(SectorG1). W funkcji odwołuj się normalnie - jak do zwykłej tablicy (sec[i]=...) 4\/3!!
Witam, Korzystam czasem z przekazywania wskaźnika do funkcji, w postaci argumentu do innej funkcji mp: void fun(void) { //ciało funkcji } a następnie np tak: uint8_t get_kbd( uint8_t key, void (*fun)(void) ) { if (key) { fun; return 1; } else { return 0; } } int main(void)...
Witam, zająłem się ostatnio wskaźnikami i chyba sporą ich część już ogarnąłem co do zasady ich działania. Teraz doszedłem do momentu kiedy zacząłem zadawać sobie pytanie czy jest coś takiego jak przekazanie jako argumentu funkcji wskaźnika ale w sytuacji kiedy używam wskaźnika do tej funkcji. I przy tej okazji drugie pytanie, jakie są zalety stosowania...
No tak, ale funkcja zwraca wskaźnik na funkcję, a ta ten wskaźnik ma mieć ten sam typ, co wskaźnik na funkcję, która go zwraca. W sensie ma być możliwe to: [syntax=C] [typ]* ple(void*) { return(&ple); } [/syntax] Freddie Chopin: argument jest po prostu zwykłym wskaźnikiem na void. Cały problem rozbija się o fakt, że funkcja ma zwracać wskaźnik na typ...
Przecież w tej funkcji nie zwracasz wartości przez wskaźnik .... zwracasz typ double. A to nie wskaźnik.... Pewnie chodzi ci o to czy modyfikacja struktury przekazanej przez wskaźnik jako argument funkcji jest poprawna ? - pewnie że poprawna. Ale to tylko modyfikacja argumentu (obojętnie czy typu wskaźnikowego czy nie) .....
Nie masz pojęcia co ty piszesz, masz kopię wskaźnika jako argument funkcji. Nie możesz w ten sposób przypisywać elementu bo zwyczajnie działasz na kopii a nie na wskaźniku który przekazujesz do funkcji (do tego służy wspomniana wcześniej referencja). Jedyna opcja by ten kod działał to zrobić element nadmiarowy, oraz przekazać go do tej funkcji np tak:...
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 przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
czy mógłby mi ktoś wytłumaczyć czym jest pierwszy argument - nie wiem jak działa takie połączenie wskaźnika i referencji ? Nie rozumiem dlaczego jest tam & a nie sam wskaźnik do obiektu typu Lista ? Dziwny zapis, ale zakładając że to działa, to wygląda na to że taki zapis jest jakby referencja do wskaźnika. Niby mógłby być tylko wskaźnik, ALE w przypadku...
VC6 to strasznie muzealny zabytek - co cię przy nim trzyma? WINAPI to też nie jest coś w czym wygodnie się cokolwiek piszę, zaprzyjaźnij się np. z Qt. Znalazlem, ze musze skorzystac z funkcji i utworzyc nowy watek, uzyc "czekajacych" funkcji. Tak, w twojej funkcji CADlg::OnOK tworzysz wątek i uruchamiasz wątek (który będzie pobierać twoje dane), a sama...
tymon_x działa ale jak byś mi mógł jeszcze wytłumaczyć dlaczego tablica buf jest 3 elementowa ? buf A skąd ci się teraz wzięła tablica 3 elementowa ? przecież tymon_x nic nie pisał o tym. Podał ci tylko dobry sposób jak sobie wyświetlić pojedynczy znak z całej twojej tablicy jednej czy drugiej. Tablica w przykładzie kolegi tymon_x jest przecież 2 elementowa...
Witam; jestem początkującym, więc proszę nie śmiejcie się z pytania. Ale ledwo co w miarę dobrze zrozumiałem pojęcie wskaźników i zaczełem je używać a teraz chciałbym zrozumieć wskaźniki na funkcję. Tyle tylko, że kompletnie nie mogę zrozumieć ich sensu, do czego służą, kiedy się przydają. Czy mógłby któryś kolega podać mi jakiś uproszczony przykład...
Przyjrzałem się funkcji "strtok2()" i wniosek mam taki, że nie nadaje się ona do Twojego programu. W funkcji "odczyt_IMEI" potrzebujesz odebrać IMEI, które jest zawarte przed napisem "OK". Możesz to zrealizować w taki sposób (przenieś do siebie tylko funkcję "odczyt_IMEI"): [syntax=c]#include <iostream> #include <string.h> using namespace...
https://obrazki.elektroda.pl/3221612800_... Witajcie moi drodzy. Zapraszam na relację z postępów prac nad otwartym firmware dla BK7231T. Temat ten napisany będzie w formie tutoriala, przedstawię tu krok po kroku jak opracowałem własny, wieloplatformowy (działający na Windowsie i BK7231T) mini-serwer HTTP, system konfiguracji pinów...
Nie można było tak od razu? Teraz przynajmniej mogę Ci powiedzieć dlaczego działa. Deklarując te 8 tablic i wkładając je do tablicy liczb całkowitych, dokonujesz niejawnego rzutowania z wskaźnika na tablicę (którym jest nazwa tablicy) na liczbę całkowitą. Potem jak wkładasz kolejne elementy tablicy tab do funkcji rejestr to dokonujesz znowu konwersji...
W pierwszym przypadku odczytujesz stan wejść przy sprawdzeniu bit_is_clear . W drugim przypadku podczas wywołania setButton , i przekazujesz odczytaną wartość. Musisz przekazać adres przez wskaźnik ze słowem volatile . setButton: wydaje mi sie, ze on jedynie zapisuje informacje o tym gdzie znajduje sie button a sprawdzenie nadal ma sie odbyc dopiero...
Dlaczego używam strtok_r() bo w tym konkretnym przypadku potrzebuję wskaźnika na pozostałą część łańcucha do analizy czyli tą moją *reszta , ponieważ przekazuję go jako argument do całkiem innej funkcji do dalszej obróbki (parsowania) , zatem chociażby z tego powodu strtok_r() przydaje się nie tylko w wątkach w dosłownym znaczeniu. mam np: kilka wywołań...
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
krzyfn : Jeśli funkcja potrzebuje miejsce na zmienne lokalne, to zaraz po skopiowaniu ESP do EBP zmniejszasz ESP np o 16 - zostanie przydzielone 16 bajtów lub inaczej mówiąc 4 DWORD'y dostępne przez Dodano po 14 Co do przekazywania wskaźnika - nie wiem w czym problem. Wskaźnik to nic innego jak zmienna zawierająca adres. Tak więc musisz pobrać ze stosu...
Wyrażenie unsigned aLiczby return aLiczby[3] && true ; jest błedny! Funkcje w c++ mogą zwracać przez nazwe tylko jedną zmienną, może to być tablica danych,bądz cokolwiek innego ale nigdy nie można zwrócić dwóch lub więcej zmiennych przez nazwe funkcji tak jak Ty to robisz. Nie rozumiem czemu kompilator pozwala na takie wyrażenie, zawsze jest...
Error[Pe167]: argument of type "FIL volatile *" is incompatible with parameter of type "FIL *" Obawiam się że to wina kompilatora, bo przykład jest zaczerpnięty z ksiązki w której autor używał kompilatora Eclipse. Czy jest na to jakis sposób? :/ Jasne, od razu wina kompilatora. Kompilator poprawnie się zachowuje. Jeśli...
Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ? Czasem może być jakiś problem sprzętowy/programowy/systemowy, który może spowodować wywalenie się debuggera, który będzie np. uparcie twierdził, że jesteśmy wciąż w jakiejś linii, choć mikrokontroler sobie wtedy...
Rozwiązanie drugie które napisałem, praktycznie w postaci aktualnej nadaje się do przerwań - dodać tylko jedną zmienną która będzie informować ile aktualnie odczytano bajtów i samą funkcję update_bit można wywoływać po razie w przerwaniu, jako trzeci argument podając odczytany bit. Równie dobrze można przekształcić rozwiązanie pierwsze wyciągając z...
https://obrazki.elektroda.pl/4024708700_... Witajcie moi drodzy. Przedstawię tu pierwszy na świecie tutorial programowania modułu WiFi WB2S, czyli BK7231. Moduł ten występuje w wielu urządzeniach smart home, a w internecie panuje opinia, że nie można stworzyć dla niego własnego firmware. Nic bardziej mylnego - pokażę tu krok po kroku...
No bez przesady. Programuje się go akurat trudniej, przecież masz różne tryby 16 i 32 bitowe, złożone adresacje itd. A co mnie to obchodzi pisząc w C albo C++? Nic. Programuje się to prościej, m.in. dlatego że jak chce mieć stałą we flashu, to piszę "const" i już, a nie niekończące się zabawy z PROGMEM i wszystkie związane z tym problemy (różny sposób...
Cześć, Próbuję napisać bibliotekę obsługującą kilka układów MCP23S17 po SPI niestety zatrzymałem się w momencie przekazania przez wskaźnik lini csPin sterującej konkretnym ekspanderem. Poniżej umieściłem kod, obrazujący problem. Jako że funkcję "EXP_WriteOutput(&expand);"w pętli MAIN chcę mieć jedną, problem pojawia się jak w funkcji "EXP_SetRegister"...
Sprzęt dla ułomów co nie wiedzą nic o życiu, Bardzo mi miło za ocenę mojej skromnej osoby. Mam jak to nazywasz "ogryzka" od kilku lat już (wciąż tego samego i wcale nie młodego) i działa. Telefon z założenia i nazwy ma być telefonem - a tę funkcję spełnia świetnie. Jak chcesz mieć dodatkowo setkę innych funkcji to musisz się liczyć z tym, że mogą się...
(...) dzinie dużych modeli językowych znacząco wpłyną na to, jak będziemy projektować systemy wbudowane w przyszłości. Ta perspektywa jeszcze nie nadeszła, ale może być znacznie bliżej, niż chce się sądzić. Artykuł źródłowy: https://www.embedded.com/7-expert-tips-f... Z przyjemnością zajmę się Twoimi pytaniami....
Spróbuj to zmienić tak, aby nie używać zmiennej globalnej. Funkcja esp_ipc_call() może przyjmować argument w postaci wskaźnika do void. Dziękuję za Twoje uwagi. Faktycznie `esp_ipc_call()` umożliwia przekazanie argumentu do funkcji, która zostanie wywołana na innym rdzeniu. Możemy skorzystać z tej funkcjonalności, by przekazać wskaźnik do zmiennej,...
Coś zwrócić :D W tym przypadku nic nie trzeba zwracać bo pracuje się na na orygnialnych danych.
Poprzedni mój przykład działa poprawnie pod warunkiem że cały jego tekst zawarty jest w jednym pliku głównym. Jeśli wywołanie funkcji piszącej do lcd nastąpi w innym pliku, to argument funkcji będący zarazem wskaźnikiem do tekstu flash nie zostanie rozpoznany. Obszedłem to poprzez zdefiniowanie W pliku nagłówkowym powinny być tylko deklaracje, zazwyczaj...
Mam pewien problem z wskaźnikami do dynamicznej tablicy. Tablicę tworzę tak: [syntax=c] int **tablica; //n - kolumny, m - wiersze tablica = (int**)malloc(n * sizeof(int*)); for(i=0; i<n; i++){ *(tablica+i)=(int*)malloc(m*sizeof(int))... } [/syntax] Następnie chcę utworzyć wskaźnik do tej tablicy i wywołać funkcję (wypelniajaca tablice zerami)z tym...
To wiadomo, co 2 bajty... tyle, że jak to zapisać, jako argument funkcji eeprom_read_word? Np. tak: eeprom_read_word((uint16_t *) 0x00), jako wskaźnik na zerowy element pamięci EEPROM, czyli LSB pierwszego słowa uint16_t? R
Kompilator w funkcji która wywołuje funkcję LCD_WriteText rezerwuje na stosie miejsce dla tej tablicy i przekazuje wskaźnik do tej tablicy funkcji itoa. Dopiero po wyjściu z tej funkcji obszar pamięci przeznaczony dla tej tablicy zostaje zwolniony na stosie. Funkcąj wywołujacą LCD_WriteText() jest w main(). Ale kompilator wie tylko że funkcja ta przyjmuje...
Ale w powyższym przykładzie: const uint32_t delta = b*b-4*a*c; zmienna nie znajdzie się we FLASH, gdyż jej wrtość nie jest znana na etapie kompilacji, chyba, że gcc zoptymalizuje wywołanie funkcji i stworzy jej klona - wyspecjalizowaną wersję dla określonych wartości argumentów. Ale niezależnie od tego nie będzie miało znaczenia, czy jest w FLASH, czy...
W funkcji sortuj jeden argument to wskaźnik na funkcję porównującą, której w ogóle nie używasz.
Jak mozna napisac program aby wyliczał jakaś zmienna z funkcji tylko ze nazwa funkcji musi byc przekazywana przez wskaznik. A teraz po ludzku:) : Z programu głownego wywoluje funkcje gdize podjae jako jeden argument wskaznik do funkcji puzniej z tej funkcji wywoluje przez wskaznik funkcje ktura ma dopiero cos oblizcac :) z gory dzieki za kazda pomoc...
Tak wtedy kompilator się będzie burał o to :) Z małym zastrzeżeniem - musi to być wskaźnik lub referencja, bo w przypadku "normalnego" typu nie ma to znaczenia, ponieważ jak wiadomo parametr funkcji, jeśli nie jest to wskaźnik lub referencja, jest tak jakby kopią argumentu funkcji. Na odwrót, czyli podanie zmiennego wskaźnika/referencji do funkcji przyjmującej...
To jest "Potencjalne Żródło Błędów w Programie Które Najprawdopodobniej Nikomu Się Nigdy Nie Przyda" Co do pierwszego: to jest wskaźnik na funkcję nie zwracającą wyniku wywoływaną bez argumentów (jeśli się nie mylę). #include <stdlib.h> #include <iostream> using namespace std; void aaa(){ cout << "funkcja aaa\n";...
Witam wszystkich Otóż szukam na necie, ale wydaje mi się, że wszystko zrobiłem tak jak należy..a problemem jest wskaźnik void jako argument funkcji. Stworzyłem funkcję: void usart_transmitnr(static void*transmit) -> w osobnym pliku w main tworze zmienną, np int a..i kiedy chce wpisać: usart_transmitnr(a) - > to wyskakuje mi błąd ze kompilator nie może...
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 wprowadza zakres widoczności, ale musiałbyś wtedy zmienić język z...
chodzi mi dokładnie o to: czy argumentem funkcji int gpio_open(gpio_properties *gpio); ma być gpio30? czyli: [syntax=c]gpio_open(gpio30);[/syntax] wychodzi na to, że nie bo nie następuje poprawna kompilacja. Pewnie w funkcji: [syntax=c]gpio_set_value(gpio_properties *gpio, int value);[/syntax] drugim argumentem będzie 0 lub 1, ponieważ wartość value...
Do 8-bitowej zmiennej typu char próbujesz zapisać wskaźnik p, nie do końca jak bym przekazał do funkcji adres wskaźnika char *wsk; i przekazany argument &wsk; tzn. że po wyłuskaniu ten adres(zalokowanej pamięci) zapisuję do wskaźnika a nie do zmiennej typu char wskaźniki są 16 bitowe. Przecież taki wskaźnik on chce tylko adres co mi szkodzi przekazać...
C nie ma dynamicznych typów danych (tzn. normalnie typ danej jest ustalony w czasie kompilacji), co powoduje, że do takich zastosowań się trochę słabo nadaje. W każdym razie, ze strukturami chodzi o to, że jeżeli masz funkcje (dynamicznie zmieniające się, co uzasadnia stosowanie wskaźników) o różnych typach argumentów i różnych typach zwracanych danych,...
Co jest oczywiście źle bo do funkcji HAL_SPI_Transmit jako drugi argument wchodzi "uint8_t *pData". Chodzi Ci o to ? Ja wiem że jest źle. Ale tylko HAL_SPI_Transmit bo do HAL_SPI_Receive wchodzi uint8_t. Nie wiem jak zrobić, żeby odczytywać drugi bajt Dodano po 1 Może inaczej. Czy da radę odczytać danę na wskaźniku ? (nie używając tablic) (dane przychodzą...
Dzięki za odpowiedź ale nie o to mi chodzi. Wiem że mogę zdefiniować wcześniej w programie stałą, ale chciałbym to obejść. Mogę zrobić też osobną funkcję obsługującą takie przypadki ale nie tędy droga. Ogólnie funkcja ma przyjmować argument przez wskaźnik bo w 90% przypadków przekazywana będzie tablica. Definiowane 'tymczasowej zmiennej' ( o ile w C...
Funkcje mają parametry, a to co do nich przekazujemy (konkretne wartości) to są argumenty. Nie żebym się czepiał, ale fajnie jest wiedzieć o czym ktoś do Ciebie mówi. Btw tworzysz wspaniałe opisy słowno-muzyczne, ale ja trochę ich nie kumam :) Jednak super by było gdybyś wspomagał swoje słowa jakimiś przykładami kodu. Np z tego: Mamy funkcję, która...
Czy jest jeszcze jakiś inny sposób, by zachować starą tablicę?:)No bo nie da rady tak przekazać argumentu by nie zmienić wartości tablicy poza funkcją prawda? Przekazując argument poprzez wskaźnik przekazujesz tylko adres tablicy, a nie całą tablicę. Tablice również możesz skopiować wykorzystując funkcję void f(int *wsk_old, int *wsk_new, int length)...
Piszę program w AVRStudio + WinAVR i mam problem. Kiedy deklarujemy funkcję i w jej argumentach wejściowych znajduje się wskaźnik np. do tabeli jest OK, ale jeżeli jest to wskaźnik do struktury kompilator wywala błędy. Przykład: #include <io.h> #include <iom32.h> struct bufor { unsigned char ramka[10]; unsigned short rozmiar;...
Jak czytać tablice, to ja wiem, zrobiłem przecież na AVR (Atmega i Xmega) z tablicą fonty 8x8, na ARM też zrobiłem, ale jak juz chce się użyć w programie kilka krojów/rodzajów czcionki i łatwo tym zarządzać - to jest mój problem. IMHO tablica z fontami to średni pomysł i niepotrzebny. Jeśli zrobisz tak jak w ostatniej strukturze, tzn. opis fontu zawiera...
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...
funkcji argument wskaźnik funkcja argument wskaźnik funkcji
hamulec kosiarka elektryczny obsada pierścień rower przekładnia
domofony cyfrowe reason instrukcja
Chrysler Pacifica 2021 - Nie otwierają się tylne szyby Czy mogę użyć akumulatora 48V do myjki 24V?