zmienna lokalny static

Znaleziono około 34 wyników dla: zmienna lokalny static
  • Zmienna nieulotna w funkcji. [C]. Jak ją zadeklarować?

    Jeszcze raz zaznaczam, nie znam dokładnie C, ale w paru innych językach typ static wypełniał lukę między zmiennymi lokalnymi i globalnymi. Zmienna static była trochę "lokalna", bo poza funkcją jej nie widać, a trochę jakby "globalna", bo przechowywała wartość przez cały czas trawnia programu (no, trochę tu łopatologicznie poleciałem :) ).

    Mikrokontrolery   16 Sty 2010 23:38 Odpowiedzi: 56    Wyświetleń: 5591
  • Czy struktura `FlagProtocol` w C jest automatycznie inicjalizowana do 0?

    W AVR GCC wszystkie zmienne globalne i statyczne są automatycznie zerowane i nie ma najmniejszej potrzeby ich inicjalizacji zerami. Jeśli natomiast definicja zmiennej znajduje się wewnątrz funkcji to już trzeba ją samemu inicjalizować. Co jest dosyć oczywiste, bo nie jest wtedy zmienną globalną :) Przy czym istnieje wyjątek - lokalne zmienne statyczne...

    Mikrokontrolery AVR   12 Gru 2010 18:08 Odpowiedzi: 16    Wyświetleń: 3019
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • ATmega8 [C] - Wyświetlanie wartości na wyświetlaczu 7-segmentowym

    Nie wiem w jakim celu wyłączasz timer na czas obsługi przycisku. Procedura obsługi przerwania powinna być jak najkrótsza. Niepotrzebnie wywołujesz za każdym razem funkcję setNum(). Warto byłoby ją wyrzucić do pętli głównej i wykonywać tylko w momencie zmiany prędkości. Utwórz sobie tablicę trzech elementów, w których przechowywał będziesz kolejne cyfry....

    Mikrokontrolery AVR   02 Maj 2014 11:26 Odpowiedzi: 8    Wyświetleń: 1950
  • REKLAMA
  • [AVR/C/C++/Arduino] Różnice między const a #define w AVR/C/C++/Arduino - jak działa kompilator?

    const int liczba=10; może niestety wiązać się z rezerwacją miejsca w pamięci. Przykład dondu był zbyt trywialny i dlatego wyszło, że oba sposoby prowadzą do tego samego. Pomiędzy define a const zmienna są istotne różnice. Np. można pobrać adres zmiennej, lecz nie etykiety. Aby oba sposoby były w miarę równoważne lepiej stosować static const zmienna....

    Mikrokontrolery   06 Lip 2011 07:44 Odpowiedzi: 17    Wyświetleń: 3227
  • Termometr bezprzewodowy 433 MHz - UART nie działa, odbiornik nie odczytuje danych

    I jeszcze jedno: Static jest tutaj kluczem i wreszcie trzeba go poznać :) : http://mikrokontrolery.blogspot.com/2011... Ja wychodzę z założenia iż jeśli zmienna ma być użyta w przerwaniach i w pętli głównej to deklaruje ją zaraz pod includami jako zmienną globalną. Zmienne zadeklarowane w ciele funkcji mają...

    Mikrokontrolery AVR   08 Lut 2016 21:12 Odpowiedzi: 20    Wyświetleń: 1971
  • REKLAMA
  • [C]Zmienna lokalna vs globalna, a szybkość wykonywania programu przerwania

    Zatem jeśli zmienna lokalna (ulotna) jest pamiętana w rejestrze procesora, po odłożeniu na Stos jej początkowej wartości, to będzie ona dostępna szybciej niż zmienna globalna. Czyli, generalnie zmienna lokalna zadeklarowana w przerwaniu , też będzie odłożona przez kompilator do rejestru i potem wszystkie operacje będą wykonywane na tym rejestrze? A...

    Mikrokontrolery AVR   08 Lis 2017 22:39 Odpowiedzi: 14    Wyświetleń: 2571
  • REKLAMA
  • [C][AVR] - definicja wskaźnika na łańcuch w funkcji

    Ja nigdzie nie twierdzę, że chcesz to do czegoś wykorzystać. Po prostu opisałem kod, który pokazałeś i problemy jakie się z nim wiążą. Co do definicji z modyfikatorem volatile - IMHO to kiepskawe rozwiązanie. volatile efektywnie w gcc działa tak jakby lokalnie wyłączyć optymalizację, ale w tym przypadku to, że pozostawia literał w RAM to przypadek,...

    Mikrokontrolery   28 Lis 2010 21:11 Odpowiedzi: 18    Wyświetleń: 2424
  • WinAVR: Jak poprawnie zdefiniować zmienną volatile dla ATMega8?

    Taki zapis ( definicja )powinien być w jednym pliku C (zmienna globalna) volatile unsigned char stan = CZEKAJ; w pliku headera (chyba sensor.h) tylko deklaracja extern volatile unsigned char stan; w żadnym wypadku nie można dawać w headerze (pliku *.h) includowanym do wielu plików *.c definicji zmiennej statycznej static unsigned char stan = CZEKAJ;...

    Mikrokontrolery   07 Gru 2006 11:02 Odpowiedzi: 2    Wyświetleń: 1949
  • stm32 - fatfs - SPI - Nie zmienia rozmiaru pliku przy zapisie i lseek'u

    Jeżeli chodzi o ffconfig.h to próbowałem różnych ustawień a z desperacji ;) nawet zupełnie kosmicznych ich kombinacji. Jeżeli chodzi o ustawienia kompilatora to -O0 -> prawie najnowszy bleeding edge toolchain. Przed każdym buildem robię clean'a. Dodam, że dzieje się to na dwóch różnych kartach. Próbowałem też z różnymi typami zmiennych a uchwyt systemu...

    Mikrokontrolery ARM   04 Lis 2013 18:08 Odpowiedzi: 7    Wyświetleń: 2628
  • [C] Struktury w C: cel nadawania nazw i deklaracji bez instancji

    Cytat z book'a: Język C dopuszcza tego rodzaju inicjalizatory, pod warunkiem że inicjalizowana struktura posiada przydział automatyczny (zmienna lokalna względem funkcji i nie została zadeklarowana słowem static). Może być nawet wywołaniem funkcji zwracającą odpowiednią strukturę. Tak jakby komuś się kiedyś miało przydać.

    Mikrokontrolery AVR   10 Sie 2011 12:42 Odpowiedzi: 22    Wyświetleń: 2009
  • REKLAMA
  • zamiana int to string i wyslanie prze DBGU przy pomocy PDC

    no to problem rozwiazany [; caly czas nie zwracalem uwagi, ze ty dane pchasz przez DMA. no wiec problem polegal na tym, ze UART jest na tyle wolny (albo procek na tyle szybki [; zalezy jak na to patrzec), ze zanim on zaczal te dane tak naprawde odbierac i wysylac spod zadanego adresu, to juz funkcja sie skonczyla. skoro zmienna byla lokalna, to byla...

    Mikrokontrolery   18 Kwi 2008 22:49 Odpowiedzi: 14    Wyświetleń: 2629
  • at89c2051 c++ początkujący, problem z wyświetleniem wartości

    Lepiej napisać tak - zmienne automatyczne trzeba inicjalizować ręcznie. Automatyczne to są te zmienne, które alokowane są na stosie, czyli zmienne lokalne, ale nie-statyczne. void f(void) { int auto; // zmienna automatyczna - wartosc losowa static int stat; // zmienna statyczna - wartosc 0 ... 4\/3!!

    Mikrokontrolery   16 Paź 2009 17:08 Odpowiedzi: 7    Wyświetleń: 1413
  • STM32F4 - Zmienne lokalne szybsze niż zmienne globalne.

    Cały czas mówimy o zmiennej lokalnej procedury, czyli obiekcie o nieustalonym z góry adresie, zaalokowanym w jakiejś formie pamięci lokalnej (na stosie, gdziekolwiek ten stos by nie leżał - w pamięci czy rejestrach). Taka zmienna nie ma statycznego powiązania z żadnymi konkretnymi adresami pamięci, więc nie może mieć żadnych deterministycznych "efektów...

    Mikrokontrolery ARM   26 Lut 2014 12:09 Odpowiedzi: 34    Wyświetleń: 4734
  • Przerwania proste i przyjemne - część 2 - zmienne, bufory i latencja

    W Zmienne globalne — wiedz, kiedy są modyfikowane Zmienne globalne muszą być ostrożnie obsługiwane, gdy są używane z przerwaniami, ponieważ te są generalnie asynchroniczne. I jeżeli zmienna globalna jest modyfikowana przez ISR, może zostać zmieniona w dowolnym momencie. Musimy mieć na uwadze następujące aspekty: Odczyt/zapis zmiennych globalnych...

    Artykuły   08 Mar 2022 00:35 Odpowiedzi: 18    Wyświetleń: 2688
  • ATMega328P Arduino - Mniej sprzętowych PWM do dyspozycji niż trzeba

    Raczej nie wydłuży obsługi przerwania,a w przypadku uC wydajniejszych od ATmega wręcz ją skróci, bo modyfikacje zmiennej bez atrybutu volatile zajmują zwykle mniej czasu, niż modyfikacje stanu portu. Być może w AVR jest tak samo - to zależy i od sprzętu i do kompilatora. Po prostu te operacje, które wykonujesz na porcie, należy wykonywać na zmiennej...

    Arduino   06 Gru 2014 20:50 Odpowiedzi: 9    Wyświetleń: 1398
  • [Atmega32] Atmega32 C – błędne wyświetlanie temperatury poniżej 7°C i powyżej 33°C na diodzie

    'Nie, static uint8_t licznikAnowy = 1 znaczy, że ta zmienna jest inicjowana tylko raz, przy starcie aplikacji, a jej wartość jest zachowywana pomiędzy kolejnymi wywołaniami, niezależnie czy jest to zmienna globalna, czy lokalna. ', po co to napisałeś... wiem po co użyłem static, a ten komentarz tam oznacza praktycznie tyle ze licznik wraca do pierwszego...

    Mikrokontrolery AVR   05 Wrz 2011 13:34 Odpowiedzi: 19    Wyświetleń: 2596
  • Błędny odczyt EEPROM w ATmega128 - problem z funkcjami SaveString i OpenString

    Bo to jest zmienna tworzona tylko na chwile, automatycznie niszczona w momencie wyjscia z funkcji (out of scope). Wiec wskaznik, ktory zwracasz juz nie wskazuje na poprawny obszar danych. Dlatego mozesz ta zmienna zadeklarowac jako globalna (tylko po co wtedy zwracac jej adres), dac static, ale to tez bez sensu, bo dla kolejnych wywolan funkcji bedziesz...

    Mikrokontrolery AVR   07 Sty 2010 17:24 Odpowiedzi: 3    Wyświetleń: 1820
  • [m32][C] zegar LED, brak multipleksu, kompilacja bez błędów.

    Poprawiona funkcja klawisze(). Zmienna zadeklarowana lokalnie. static przed definicją. [syntax=c]static uint8_t zatrzask=0;[/syntax] Taka zmienna lokalna jest zapamiętywana pomiędzy kolejnymi wywołaniami funkcji.

    Mikrokontrolery Początkujący   23 Lip 2012 19:55 Odpowiedzi: 51    Wyświetleń: 3728
  • Całkowanie sygnału sinusoidalnego na Atmega 128 metodą prostokątów - ADC i LCD

    No to krok do przodu u mnie tez działa jeden warunek i wszystko gra serdeczne dzięki dla kolegi Marka jeszcze jak pisze może kolega mi podpowie jaki typ zmiennej jest widziany globalnie a raczej zewnętrznie .Mam funkcje w której mam zmienną funkcja co prawda jest umieszczona w innym pliku nagłówkowym oczywiście podłączona Includem pod główny program...

    Mikrokontrolery AVR   31 Sty 2011 09:34 Odpowiedzi: 43    Wyświetleń: 5867
  • Program wykrzacza się, gdy zmienna nie jest zadeklarowana jako static.

    problem wydaje się, że zniknął. Czy doprowadziłem tutaj do jakiegoś UB? O ile rozumiem ta zmienna to zmienna lokalna zadeklarowana w funkcji. Takie zmienne w C mają "automatic storage duration" i nie są zerowane jak nie ma jawnej inicjalizacji. Dodanie 'static' powoduje, że mają one "static storage duration" (tak samo jak np. zmienne globalne) i są...

    Mikrokontrolery AVR   10 Mar 2021 15:49 Odpowiedzi: 31    Wyświetleń: 1473
  • DIGISPARK Rozpoznawanie jak długo był przyciśnięty przycisk

    Nie wiem jak przerwania od timerów działają w Arduino, bo w ten sposób najlepiej testować stan przycisków, np 50 razy na sek. Co wystarcza do debouncingu i upraszcza kod. Sprawdzanie w pętli może powodować błędy czasowe, jeśli masz tam jakąś zajmującą czas obsługę. Może coś takiego zadziała, tak schematycznie. Np. tworzysz zmienna CZAS_1 STAN_1 zerowane...

    Arduino   01 Lip 2017 23:33 Odpowiedzi: 11    Wyświetleń: 1449
  • Zmiana wyjścia PWM z PB3 na inne dla TIMERA2 - jak to zrobić?

    Pozwolę sobie czepnąć się tego kodu, przynajmniej estetycznie: przekroczenie zakresu zmiennych w c to zdaje się zachowanie niezefiniowane? W związku z tym może się dla cnt bezboleśnie przekręcić licznik (tak jak chcemy tutaj) a może zacząć nadpisywać sąsiedni bajt - zależnie od kompilatora. Czy się mylę? No mylisz się. Jaki sąsiedni bajt? w zależności...

    Mikrokontrolery AVR   10 Cze 2010 14:31 Odpowiedzi: 29    Wyświetleń: 2669
  • [C] zmienne static globalne/lokalne dwa pliki + nagłówki .h

    Pytanie jest o deklaracje main.c Kod: unsigned int *msg; oraz w spi.h Kod: static unsigned int *msg; Czy ja dobrze rozumiem, że są to dwie zmienne, z czego pierwsza widziana jest tylko w pliku main.c a druga tylko i wyłącznie w pliku spi.c? Mylisz się. Pierwsza zmienna msg jest zadeklarowana wewnątrz funkcji main() i tylko tam jest widoczna. W przypadku...

    Programowanie Początkujący   01 Cze 2009 16:42 Odpowiedzi: 7    Wyświetleń: 5712
  • [at89c51][c][sdcc] Ostrzeżenia przy kompilacji programu

    Kilka warningów potrafię sobie przetłumaczyć z języka angielskiego i wiem o co chodzi bez zaglądania do kodu źródłowego Skoro wiesz, to po co pytasz? ;) warning 59: function 'ISO14443B_REQB' must return value oznacza, że podana funkcja nie zwraca wartości, czyli np w jakiejś pętli, czy poza nią brakuje linijki: return x; Właśnie, w podanej funkcji...

    Mikrokontrolery   14 Gru 2008 17:29 Odpowiedzi: 5    Wyświetleń: 2982
  • Roznica: zmienna typu Static a zmienna globalna ( w C )

    Czy ktos moze napisac jak jest roznica pomiedzy zadeklarowaniem zmiennej lokalnej typu static a zmienną zadeklarowaną jako globalną ? unsigned char zmiennaglobalna; void procedurka (void) { static unsigned char zmiennastatic; ... } "zmiennaglobalna" nie zwalnia pamieci i "zmiennastatic" nie zwalnia pamieci - jak to jest ??? Pytanie dotyczy Keil C na...

    Programowanie   30 Paź 2004 15:19 Odpowiedzi: 3    Wyświetleń: 6406
  • STM32, LWIP - Jak ustawić unikalny MAC adres wykorzystując ID procesora?

    http://www.st.com/content/ccc/resource/t... lub znajdz funkcję static void low_level_init(struct netif *netif) i tam jest zdefiniowana tablica z adresem. Nazywa się róznie w zależności od wersji (bo to lokalna zmienna)

    Mikrokontrolery ARM   09 Lut 2017 14:50 Odpowiedzi: 31    Wyświetleń: 3048
  • Czy można zmienić adres I2C w enkoderze AS5600?

    Sporo roboty było z odpowiednim "zaekranowaniem" enkoderów ale efekt na prawdę fajny: https://youtu.be/wx_8WDe-jAI Przed startem robot całkowicie wyłączony z zasilania. Po załączeniu zasilania, wysłałem komendę dojazdu do pozycji zerowych i jak widać wszystkie (na razie tylko 4) osie dojechały perfekcyjnie do pozycji domowej, także świetnie! :) Jeszcze...

    Mikrokontrolery Początkujący   07 Lis 2019 07:18 Odpowiedzi: 14    Wyświetleń: 1671
  • Tworzenie zmiennych w pętli while vs poza nią: wpływ na pamięć i wydajność (C++)

    Kod wygenerowany przez kompilator wykonuje na wejściu do procedury jedną operację przydzielającą ze stosu pamięć na wszystkie zmienne lokalne automatyczne (takie, które nie są deklarowane jako static), w tym są zmienne, których w programie w C nie ma - nie zawsze są potrzebne, ale pewnie kompilator zawsze generuje instrukcję, czy sekwencję instrukcji,...

    Programowanie   06 Sty 2023 20:56 Odpowiedzi: 4    Wyświetleń: 267
  • STM32 F4 (Nucleo F446RE) Problem z przekazaniem float to funkcji

    1. Przyjmij że kompilator działa jak należy i przekazuje parametry do funkcji poprawnie. Gdzie pokaż jeszcze wywołanie funkcji. Optymalizacja -O0 nie zawsze Ci pokaże wszystkie zmienne lokalne. Przy debugwaniu w takiej sytuacji lepiej -Og. Ale wtedy różnica w szybkości prgramu może być 2-3 krotna. Wywołanie: static uint8_t str[12]; float32_t...

    Mikrokontrolery ARM   29 Mar 2017 20:00 Odpowiedzi: 28    Wyświetleń: 1509
  • AVR - jak radzić sobie z fusebitami i ograniczeniami 8-bit?

    Teoretycznie const powinien także powodować, iż dane są pobierane z FLASH a nie RAM (zmniejsza to zużycie pamięci), ale zauważyłem, iż różnie to bywa. Pewnie dla optymalizacji czasu dostępu do pamięci, dane są przerzucane z FLASH do RAM i potem wykorzystywane. Bzdura. Tylko-const jako "lokalne w funkcji" nie będzie nigdy we flash - musi być "static...

    Projektowanie i Tworzenie Po godzinach   30 Sty 2020 18:45 Odpowiedzi: 368    Wyświetleń: 17286
  • [ESP-IDF] Pobranie informacji o częstotliwości pracy wybranego rdzenia w ESP32

    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,...

    ESP8266 i ESP32   29 Gru 2023 20:47 Odpowiedzi: 22    Wyświetleń: 1131
  • [C/ASM] [C/ASM][CORTEX-M3] - Jak przypisać zmienną C do rejestru R0?

    Witam, mam następujący problem. Chciałbym dowiedzieć się czy się w ogóle da tak zrobić, a jeśli tak, to chciałbym dowiedzieć się w jaki sposób. Chodzi o to, że chciałbym móc "nakazać zapis zmiennej "C" do konkretnego rejestru (np R0) a nie tylko, żeby ta zmienna była traktowana jako rejestrowa i umieszczona w dowolnym wolnym rejestrze. Tak się składa,...

    Mikrokontrolery ARM   30 Mar 2013 11:20 Odpowiedzi: 10    Wyświetleń: 1851
  • RTOS - wszystko, co chciałbyś wiedzieć i nie boisz się zapytać

    1. Wiemy podczas pisania programów na architekturę ARM programista decycyduje za pomocą skryptu linkera gdzie w pamięci leżą sekcje programu generowane przez kompilator. Najczęściej wygląda to w ten sposób: Nie do końca tak to wygląda dla ARM, choćby dlatego, że zwykle między flash a RAM jest spora "dziura", a więc między .rodata a .data na obrazku...

    Mikrokontrolery   12 Lip 2019 10:52 Odpowiedzi: 171    Wyświetleń: 9393
  • Zmienne zerują się w AT89C51/52 po przypisaniu przez RS232 - co robić?

    Witam wszystkich! Mam taki oto problem. Łączę sie z at89c51/52 poprzez rs232. posyłam w kodzie ascii na ośmiu bitach cyfry. W programi odczytuje je i zapisuje do zmiennej. Niestety wartości zmiennych zmieniają się w kilka linijek po przypisaniu im tych wartości. Dokładniej mówiąc zmienne są zerowane. Siedze nad tym już długo i sam niczego już nie wymyśle....

    Mikrokontrolery   31 Maj 2007 23:05 Odpowiedzi: 0    Wyświetleń: 755