zmienna static

Znaleziono około 542 wyników dla: zmienna static
  • Roznica: zmienna typu Static a zmienna globalna ( w C )

    statyczną możesz używać tylko w tej funkcji, czasami bezpieczniejsz abo nie zmienisz przypadkiem ;) globalną używasz wszędzie

    Programowanie   30 Paź 2004 15:19 Odpowiedzi: 3    Wyświetleń: 6406
  • REKLAMA
  • AVR GCC - Dostępność zmiennych globalnych między modułami

    Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...

    Mikrokontrolery   27 Kwi 2015 14:46 Odpowiedzi: 4    Wyświetleń: 981
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Program wykrzacza się, gdy zmienna nie jest zadeklarowana jako static.

    IMHO przyczyna leży całkiem gdzie indziej. Może procek się nie wyrabia. W przypadku zmiennej globalnej, na etapie konsolidacji jej adres jest znany, a więc dostęp może być przez adresowanie bezpośrednie. W przypadku zmiennej na stosie prawdopodobnie (nie wiem, domyślam się, nie chce mi się sprawdzać) zachodzi adresowanie pośrednie. Być może z dodatkowym...

    Mikrokontrolery AVR   10 Mar 2021 15:49 Odpowiedzi: 31    Wyświetleń: 1473
  • Jak zdefiniować i użyć zmiennej static w funkcji - stan_zmiennej

    Zmienna static to podobnie jak zmienna globalna z tą różnicą, że widziana tylko w jednym module. Czyli piszesz procedure i definiujesz ją jako static. Po wyjściu i ponownym wejściu do procedury posiada ona wartość taką, z jaką ją zostawiłeś przy wychodzeniu. W odróżnieniu od zmiennej globalnej możesz używać nazwy zmiennej takiej samej w różnych procedurach...

    Arduino   16 Wrz 2018 12:21 Odpowiedzi: 3    Wyświetleń: 888
  • 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
  • REKLAMA
  • Jak utrzymać wyświetlany napis na LCD bez użycia delay()?

    Jeśli stale to wykasuj z opcji: [syntax=c] case Nic:{ lcd.print(" "); break; } [/syntax] czyszczenie ekranu spacjami. Tu ewentualnie powinien być zliczany timeout, czyli jakaś zmienna co np. 1ms i jak przez 10s (z delay rozumiem, że to jest Twoje stale): [syntax=c] case Nic:{ static uint16_t timeout1=0; //zmienna static będzie żyła od tego miejsca aż...

    Arduino   05 Gru 2018 11:53 Odpowiedzi: 10    Wyświetleń: 450
  • Kwalifikator typu restrict w C - modyfikacja pamięci i błąd kompilacji

    Racja, zgadzam się. Zmienna static bez łączności nie jest tworzona na stosie, żyje sobie od początku do końca programu, jedynie jej zasięg jest ograniczony do bloku lub funkcji, ale nadal nie rozumiem co powoduje że te zapisy są różne: W pierwszym przypadku jest najpierw (w czasie startu) inicjowana wartością zerową (NULL) a potem w funkcji (main)...

    Programowanie Początkujący   26 Maj 2017 19:28 Odpowiedzi: 29    Wyświetleń: 1398
  • REKLAMA
  • [C] Dlaczego zmienna `count` w przerwaniu nie jest zerowana w C?

    Poczytaj o zmiennych static. http://pl.wikibooks.org/wiki/C/Zmienne#s...

    Mikrokontrolery   02 Kwi 2010 15:26 Odpowiedzi: 7    Wyświetleń: 1718
  • 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
  • Co to znaczy, żeby nie definiować licznika globalnie?

    Jeśli przy wywołanie np f5 - > CDU - > klik w multiinstance to doda ci zmienna static CDU w DB bloku który tworzysz

    Automatyka Sterowanie PLC   17 Lip 2019 20:59 Odpowiedzi: 9    Wyświetleń: 441
  • [C]Zmienna lokalna vs globalna, a szybkość wykonywania programu przerwania

    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? Dokładnie tak będzie. A jak wygląda sprawa z zmienną lokalną z specyfikatorem "static" ? Taka zmienna, jest niby tworzona w pamięci RAM, tam gdzie zmienne globalne, ale jej dostęp...

    Mikrokontrolery AVR   08 Lis 2017 22:39 Odpowiedzi: 14    Wyświetleń: 2571
  • REKLAMA
  • Kilka pytań odnośnie najlepszych praktyk programowania

    1. Jeżeli porównujesz ze stałymi (tak jak w Twoim przypadku) to lepiej użyć switch-case zamiast if-else-if. 2. Lepiej ustawić po prostu flagę. Tego typu optymalizacje powodują tylko kłopoty a zysk z nich marny. 3. Według mnie lepiej wygląda while. 4. Jeżeli wykorzystujesz ta zmienna tylko w main to może być zadeklarowana bez static jako zmienna automatyczna...

    Mikrokontrolery   25 Wrz 2016 22:03 Odpowiedzi: 19    Wyświetleń: 1299
  • Co oznacza "Static" przy funkcji w języku C

    Witam; uczę się języka C i dotarłem do programu w którym jest funkcja poprzedzona słowem Static. Coś w tym stylu: static Void nazwa_funkcji(void) i właśnie kompletnie tego nie rozumiem. Zmienna static która znajduje się wewnątrz funkcji jest dla mnie zrozumiała, ale oznaczenie funkcji jako static kompletnie nie rozumiem.

    Mikrokontrolery AVR   05 Cze 2011 21:31 Odpowiedzi: 3    Wyświetleń: 12535
  • [atmega8] Jak zgrać załączanie i wyłączanie MOC3041 z temperaturą na ATmega8?

    Spróbuj tak: /* zmienna globalna */ static uint8_t regulacja_temperatury = 1; if(bit_is_clear(PRZYCISKI_PIN_PO... { MOC3041_1_ON; MOC3041_2_ON; MOC3041_3_ON; regulacja_temperatury = 1; } else if(bit_is_clear(PRZYCISKI_PIN_PO... { MOC3041_1_OFF; MOC3041_2_OFF; MOC3041_3_OFF;...

    Mikrokontrolery AVR   13 Maj 2009 13:21 Odpowiedzi: 2    Wyświetleń: 1385
  • AVR - jak radzić sobie z fusebitami i ograniczeniami 8-bit?

    Miało być prosto, zmienna globalna static nie jest widoczna innych plików projektu. Gdy nie jest statyczna mozna się do niej dobrać przez extern.

    Projektowanie i Tworzenie Po godzinach   30 Sty 2020 18:45 Odpowiedzi: 368    Wyświetleń: 17286
  • Całkowanie sygnału sinusoidalnego na Atmega 128 metodą prostokątów - ADC i LCD

    Jeśli ja podam, to będzie znowu "gdzieś wyczytana informacja" i błędy mogą się mnożyć. Jak wyszukasz, i sprawdzisz to zapamiętasz co i jak na całe życie. Poza tym prośba o skompilowanie własnego kodu i zobaczenie efektów programu chyba aż tak trudna nie jest. A dla zaspokojenia Twojej ciekawości u mnie wychodzi 134518174 bez static (gcc, linux) Albert...

    Mikrokontrolery AVR   31 Sty 2011 09:34 Odpowiedzi: 43    Wyświetleń: 5867
  • LPC2138 zmiana współczynnka wypełnienia PWM. Pomocy...

    Musisz mieć zrobione przerwanie dla tego PWMa i w przerwaniu zmienna 'static' inkrementowana za każdym razem. I przy 499 zmieniasz wartość rejestru, pamiętaj tylko że wartość wpisujesz do 'shadow register' a nie bezpośrednio do rejestru PWMa (inaczej będziesz mieć "niespodzianki" na wyjściu ;-) ). Kodu, który napisałeś nie będę komentować - błąd na...

    Mikrokontrolery   24 Lut 2010 23:36 Odpowiedzi: 8    Wyświetleń: 1777
  • [Atmega 16][C] Usart / przesyłanie danych stablicowanych

    od tego są flagi UARTU. Odbiór w przerwaniu odbierasz tylko znak, i instrumentujesz zmienna static oznaczająca ilość danych już odebranych, gdy odbierasz 0x55 (początek ramki - nigdzie indziej nie może zostać przypadkiem wysłana) zmienna ustawiasz na 0. dalej dekrementacja licznika dalej warunek końca ramki. sprawdzasz komendą i robisz co chcesz. Co...

    Mikrokontrolery AVR   07 Lis 2010 00:15 Odpowiedzi: 3    Wyświetleń: 2212
  • [Atmega8] Jak zapisywać i odczytywać zmienną histerezy w EEPROM na Atmega8?

    [syntax=c] (...) static EEMEM uint8_t histereza = 3; //zmienna do pamieci EEPROM int main(void) { (...) uint8_t histereza = eeprom_read_byte(&histereza); (...) [/syntax] Zgadnij dlaczego nie działa ? Podpowiedź - nazwy.

    Mikrokontrolery Początkujący   10 Mar 2012 17:15 Odpowiedzi: 2    Wyświetleń: 2546
  • [ATMEGA32] Jak zapisywać i odczytywać zmienne EEPROM w ATMEGA32 używając avrgcc?

    A pod jakim adresem w eepromie bedzie sie znajdowac tak zadeklarowana zmienna static EEMEM uint8_t zmienna_w_eepromie ; Czy to będzie zawsze adres 0x0, w przypadku gdy jest to jedyna zmienna zadeklarowana w eepromie? Dodano po 17 chodzi mi o to że jak coś zapisze pod zmienna, później wyłączę mikrokontroler, następnie złlacze i odczytam wartość tej zmiennej,...

    Mikrokontrolery AVR   07 Gru 2009 11:49 Odpowiedzi: 17    Wyświetleń: 12496
  • Niedokładne wyniki licznika impulsów z enkodera - jak poprawić?

    Nie wnikając w resztę kodu - w przerwaniu ustawiaj flagę (w zmiennej) na podstawie której zostanie wykonana procedura w funkcji, a na koniec, następuje zmiana flagi na przeciwną. Zatem w przerwaniu nie wykonujesz obsługi serial'a, ustawiasz tylko wartość zmiennej. [syntax=c] #define LED_R 10 #define LED_G 11 #define LED_B 12 #define ENKODER 2 int impulses;...

    Arduino   08 Wrz 2019 08:31 Odpowiedzi: 47    Wyświetleń: 2874
  • Atmega8 - Timer1 zmiana współczynnika wypełnienia

    ustaw sobie przerwanie od np. TIMER2 co 10ms i sprawdzaj 4 ostatnie stany przycisku. teoria: http://mikrokontrolery.blogspot.com/2011... powyższe zaadoptowane do A8: [syntax=c] //**************definicja przycisku************** #define _Key _BV(PD7) #define Key_PIN PIND #define Key_DDR DDRD #define Key_PORTPORTD...

    Mikrokontrolery AVR   24 Lut 2014 18:26 Odpowiedzi: 18    Wyświetleń: 2370
  • 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
  • [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
  • Czy zmienna `volatile uint8_t` ma domyślną wartość 0?

    Bo volatile nie decyduje o tym, czy zmienna "automagicznie" przyjmie wartość zero. Natomiast wszystkie niezainicjowane zmienne globalne są równe zero. Pamiętaj, że każde słowo kluczowe wywołuje określone efekty. Stosowanie static tylko po to, żeby wartość początkowa była "0" to głupota, bo można napisać " = 0;", a to przecież nie boli.

    Mikrokontrolery   24 Paź 2010 22:17 Odpowiedzi: 27    Wyświetleń: 2874
  • Użycie static przed funkcją w C na STM32 - co to oznacza?

    Witam Chciałbym zacząć programować mikrokontrolery. Kupiłem sobie płytkę z STM32, ale używając fragmentów kodu do nauki w C, niekiedy widzę: [syntax=c]static void funkcja (int zmienna)[/syntax] Po co stosuję się ten "static" przed funkcją? Pozdrawiam.

    Mikrokontrolery Początkujący   12 Sie 2019 13:24 Odpowiedzi: 37    Wyświetleń: 2610
  • Funkcja rekurencyjna w C - program liczący silnię

    (at)pablos23: Zmienna zadeklarowana jako int aux = 0; jest tworzona i inicjowana na nowo przy każdym wykonaniu funkcji (dokładniej: jest alokowana na stosie). Za każdym razem ma wartość 0, więc warunek pierwszego if-a jest spełniony. Aby zmienna była "wspólna" dla różnych wykonań funkcji trzeba ją zadeklarować jako static int aux = 0; wtedy przypisanie...

    Programowanie Początkujący   08 Wrz 2009 11:37 Odpowiedzi: 14    Wyświetleń: 13557
  • 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
  • Budowa przetwornika cyfrowo-analogowego z AVR ATmega32, rezonator 11,0952 MHz, 50Hz

    Zapewne program się wykrzacza na tym reti(). Skąd pomysł, aby umieścić taką instrukcję? Ponadto raczej lepiej byłoby aby zmienna licznik była zadeklarowana jako static w ISR.

    Mikrokontrolery AVR   23 Wrz 2022 19:52 Odpowiedzi: 3    Wyświetleń: 570
  • sterowanie 3 przyciskami (np. ustawienie godziny w zegarze)

    zastanawialem sie w jaki sposob zrobic obsluge sterowania 3 przyciskami np. do ustawienia zegara czy czegos tam... myslalem nad sposobem 3 przyciski przycisk 1 podpięty pod przerwanie int , przelaczanie w sposob: -ustawienie godziny -ustawienie minuty -wyjscie z ustawienia (i wyswietlanie czasu) przyciski 2 i 3 (jako gór-dół w ustawianiu czasu) musialbym...

    Mikrokontrolery   28 Wrz 2007 13:40 Odpowiedzi: 1    Wyświetleń: 1717
  • [AVR] [AVR][C] Atomthreads RTOS na licencji BSD - czy ktoś testował?

    (at)grko, możesz mi powiedzieć, o co chodzi z tym brakiem const? Pogoogluj za hasłem "const correctness". Nie wiem, czy miałeś to samo, co ja zauważyłem, że jak deklarowałem zmienne w funkcji taska przed pętlą while(1), to gdy użyłem "const typ nazwa_zmiennej", to mimo wszystko miałem tą zmienną umieszczoną w stosie. Dopiero pomagała deklaracja "static...

    Mikrokontrolery AVR   24 Sty 2018 18:44 Odpowiedzi: 10    Wyświetleń: 1661
  • [ATMEGA8][C/ECLIPSE] - DS1820 i współpraca z wyswietlaczem LED

    Proszę bardzo: [syntax=c]ISR(TIMER1_COMPA_vect) { static uint8_t licznik=1; // zmienna do przełączania kolejnych wyświetlaczy if (licznik==1) wylacz_czwarty_i_wlacz_pierwszy_segment(... if (licznik==2) wylacz_pierwszy_i_wlacz_drugi_segment(); if (licznik==3) wylacz_drugi_i_wlacz_trzeci_segment(); if (licznik==4) wylacz_trzeci_i_wlacz_czwarty_segment();...

    Mikrokontrolery AVR   17 Sie 2012 20:14 Odpowiedzi: 10    Wyświetleń: 1944
  • ATMEGA88 - Brak reakcji na przycisk, wyświetla 0000 na 7-segmentowym wyświetlaczu

    Masz błąd w procedurze wyświetlania - na wyświetlaczu będzie widać "duchy" sąsiednich cyfr. Gdybyś zamiast zmiennych s1, s1, s10 zrobił tablicę, mógłbyś wywalić switch, tak, jak Ci to pokazałem wyżej: PORTD = c[cyfra[i]]; Twoja pętla główna ciągle zamienia liczbę na cyfry, a wystarczy zrobić to jeden raz po zmianie wartości. Tablicy c nie ma sensu deklarować...

    Mikrokontrolery Początkujący   13 Mar 2013 16:27 Odpowiedzi: 19    Wyświetleń: 2424
  • [Atmega8] [Atmega8][C] - Jak zaimplementować odliczanie godzin od 100 do 0?

    Nie potrzebujesz volatile, a jeśli chcesz skomplikować kod, to faktycznie zapis: div_1s=div_1s-1; if (div_1s == 0) działa podobnie (tylko może trochę wolniej), jak if (--div_1s == 0) Zmienna div_1s powinna być zadeklarowana w procedurze przerwania timera jako static uint16_t (i zapewne powinna zliczać w dół od wartości znacznie większej, niż 150). Książki...

    Mikrokontrolery AVR   02 Lis 2014 14:40 Odpowiedzi: 26    Wyświetleń: 1638
  • AVR - [C] Dlaczego zmienna LED w przerwaniu jest statyczna?

    słowa kluczowe : STATIC i operator ^

    Mikrokontrolery AVR   27 Sty 2013 14:52 Odpowiedzi: 1    Wyświetleń: 1527
  • [MEGA8] Jak poprawić odczyt temperatury z DS18B20 na ATmega8 w C?

    Warning dostajesz bo ta zmienna nie jest zainicjowana w procedurze obslugi przerwania tylko w main. Kompilator o tym nic nie wie. Jesli ci ten warning przeszkadza to zadeklaruj ta zmienna jako static co automatycznie ja zainicjalizuje na 0 i usatysfakcjonuje kompilator. W tym wypadku ta zmienna nie musi byc volatile, bo korzystasz z niej wylacznie w...

    Mikrokontrolery AVR   24 Lis 2009 00:36 Odpowiedzi: 30    Wyświetleń: 6823
  • Transmisja RS232 na ATmega32: Odczyt pliku znak po znaku, problem z pętlą

    poprawilem wedlug rad na ">=" ale teraz mam pytanie czy lepiej zmienna liczniku zadeklarowac jako static u08 licznik=0; czy na poczatku wywolania funkcji USART_getfile przypisac ja do liczniku=usartbufferlicznik; przy czym usartbufferlicznik jest zmienna globalna? deklaracja u08 usartbufferlicznik=0;

    Mikrokontrolery   18 Sie 2006 18:41 Odpowiedzi: 9    Wyświetleń: 1850
  • [Atmega32][C] Zliczanie kliknięć przycisku w timerze, eliminacja drgań przycisku

    [syntax=c] #define Button (1<<PB0) #define Button_PORT PORTB #define Button_PIN PINB #define Button_DDR DDRB volatile _Bool Key_Pressed = 0; // flaga wciśniętego przycisku [/syntax] [syntax=c] Button_DDR &= ~(Button); //port - wejście Button_PORT |= (Button); //włącz pull up [/syntax] [syntax=c] ISR(TIMER0_OVF_vect)//przerwanie wywoływane...

    Mikrokontrolery AVR   22 Lis 2018 21:11 Odpowiedzi: 7    Wyświetleń: 1077
  • WinAVR i AT90S2313 - Procesor nie widzi zawartości tablic w kodzie C

    wiem ze static powoduje ze zmienna nie jest czyszcona po wyjściu z funkcji ale tutaj nie zauwazyłem zebym miał taka sytuacje.......;/

    Mikrokontrolery   11 Gru 2008 09:01 Odpowiedzi: 24    Wyświetleń: 2191
  • ATMEGA88 - Jak zwiększyć zakres PWM do 0-1023 w języku C?

    Zrób to sobie programowo np. weź timer0 i ustaw podstawę czasu tak aby co określony czas timer zgłaszał przerwanie czy to przepełnienia czy porównania w tym przerwaniu umieść np. taki kod [syntax=c] //gl_OCR1 to zmienna globalna pełni funkcje identyczną jak OCR1 uint16_t volatile gl_OCR1 ; ISR(wektor) { static uint16_t zm; if(zm<gl_OCR0) PORTA&=~(1<<PA0);...

    Mikrokontrolery AVR   13 Maj 2017 13:36 Odpowiedzi: 5    Wyświetleń: 1404
  • [ATmega88PA] [ATmega88PA][C] - Timer0 w trybie CTC blokuje pętlę główną, LED na PC0 nie działa

    Witam. Tak na szybko analizując kod: Dla Timer0 włączasz dwa przerwania od porównania: http://obrazki.elektroda.pl/6165324400_1...

    Mikrokontrolery   05 Paź 2014 16:21 Odpowiedzi: 6    Wyświetleń: 1143
  • Programowanie Attiny13A z Arduino Uno rev.3 - sterowanie diodami w bałwanku

    Te zmienne które musza zostać przechowane do następnego wykonania loop() musisz zadeklarować poza tą funkcją (jako globalne) Niekoniecznie - wystarczy zadeklarować w funkcji, że są "static", np. "static int zm1 = 123;" - to spowoduje, że początkowo zmienna zm1 (typu int) będzie 123, ale jak się do niej potem wpisze coś innego, to będzie przechowywać...

    Początkujący Elektronicy   06 Lut 2024 00:11 Odpowiedzi: 19    Wyświetleń: 594
  • [ATMEGA8] [ATMEGA8][C] Problem z zapisem do tablicy w funkcji conv_tab()

    Magiczne słowo static daje dokładnie to samo co zmienna globalna. Przekazywanie wyniku przez zmienne globalne owszem jest w niektórych przypadkach dobre lub jedyne możliwe (z przerwania do kodu), ale pomiędzy funkcjami - nigdy. Przyjmijmy, że mamy n funkcji, każda może zwrócić tablicę o rozmiarze m. Jeśli każda funkcja przydzieli sobie tą tablicę mającą...

    Mikrokontrolery AVR   15 Lis 2008 17:00 Odpowiedzi: 17    Wyświetleń: 2058
  • [Atmega8][C++] - ADC i wyświetlacz 7seg nie współpracują

    Oczywiście uint8_t - zjadłem '8'. Jeśli zmienna jest używana tylko wewnątrz procedury, to powinna być zadeklarowana wewnątrz procedury. Jeśli taka zmienna ma "przeżywać" czas, kiedy procedura nie jest aktywna (czyli zachowywać wartość pomiędzy wywołaniami), to musi być zadeklarowana z atrybutem static. Ten sam atrybut oznacza coś zupełnie innego w odniesieniu...

    Mikrokontrolery Początkujący   09 Mar 2013 11:02 Odpowiedzi: 8    Wyświetleń: 2085
  • [Atmel Studio 7][AVR][C] - brak prawidłowego zapisu/odczytu EEPROM.

    Należę do osób, które za wszelką cenę starają się same pogłówkować i znaleźć rozwiązanie Jedyna prawdziwa informacja, jaką przekazałeś tym zdaniem, to taka, że masz wysokie mniemanie o sobie. Gotowiec dla leniuchów: [syntax=c]static EEMEM uint8_t emode; //rezerwujemy bajt w eeprom ... uint8_t mode=0; //zmienna przechowująca kopię danej z eeprom //odczyt...

    Mikrokontrolery   07 Lip 2017 07:51 Odpowiedzi: 5    Wyświetleń: 936
  • Obsługa przerwań w C: problem z diodami i wyświetlaniem czasu na LCD

    A sznowny kolega "czuje różnicę" pomiędzy: local , global, static , const ,volatile itd. :?: void Timer0(void) interrupt 1 { unsigned int licznik; licznik++; if (licznik == 300) // gdy zmienna licznik jest równy 4000 /*......................................... Piotrek

    Mikrokontrolery   08 Sty 2007 21:48 Odpowiedzi: 4    Wyświetleń: 1722
  • [AVR GCC] - Nazwa zmiennej zmienia kod wynikowy. Błąd w kompilatorze?

    W programie jest pewien błąd - zmienne prywatne dla modułu powinny być deklarowane z atrybutem static. Zgaduję, że gdyby zmienna o chorej nazwie "div" miała atrybut static, problemu by me było. Z drugiej strony nazywanie zmiennej w ten sposób jest proszeniem się o problemy - z dużym prawdopodobieństwem nazwa ta może być nazwą tzw. helpera kompilatora,...

    Mikrokontrolery AVR   29 Maj 2014 18:14 Odpowiedzi: 35    Wyświetleń: 4419
  • [ARM] [ARM][C] Jak unikać zmiennych globalnych w embedded C? Struktury i wskaźniki

    1. w kwestii formalnej zmienna "static" nie jest globalna. Tu są dwa obszary, gdzie język / sposób mówienia o języku ma niuanse. Jedno to "dynamika" czy czas istnienia zmiennej (tu static ma wspólne zachowanie z globalnym), z drugiej "zasięg leksykalny", czy da się przywołać identyfikator z innej jednostki kompilacji (tu 'static' jest przeciwieństwem...

    Programowanie   15 Lis 2017 10:13 Odpowiedzi: 19    Wyświetleń: 921
  • [Dev-C++] Błąd konwersji int na int* przy użyciu static w WinApi

    Witam, program na pewno sie wywali z powodu odwolania do elementu spoza tablicy, wynikajacego z co najmniej 2 bledow inicjalizacji: #1 int ile; //... i zaraz potem: pedzel[13]=CreateSolidBrush(... #2 static int ... przyciskanie; //... i kawalek dalej: proby_x_tablica[przyciskanie]=..... Zarowno...

    Programowanie   25 Lut 2010 15:04 Odpowiedzi: 8    Wyświetleń: 2160
  • [Wprowadzanie liczby i przycisk akceptuj, AVR C] Jak zapisać liczbę z klawiatury 4x4 do pamięci MCU?

    chodzi mi o sposób na zatwierdzenie wprowadzonej liczby, coś w stylu przycisku enter, oraz o samo wprowadzanie cyfr jako liczba 2 lub 3 cyfrowa. Do takich celów robię sobie bufor kołowy na kilka znaków, w tym wypadku wystarczy na 4. Każdy znak z klawiatury zapisuję do bufora. Pojawienie się określonego znaku (np #) konwertuje liczbę do zmiennej. [syntax=c]...

    Mikrokontrolery AVR   23 Lis 2018 09:18 Odpowiedzi: 33    Wyświetleń: 1818
  • [C]Mega32 Przerwania. W przerwaniu dioda ma migać.

    W przerwaniu deklarujesz zmienna liczba, ktora przy inicjacji jest rowna 0. Jest jako static więc jest wyzerowana tylko podczas pierwszego uruchomienia, potem już się "nie zeruje". dodaj na końcu while(1);...nie sprawdzałem częstotliwości przerwań więc zakładam że są w porządku. int main(void){ DDRA=0xFF; // PORT A JAKO WYJSCIE TCCR0 |=...

    Mikrokontrolery   18 Lut 2011 13:27 Odpowiedzi: 5    Wyświetleń: 2028
  • Zmienna const w STM32 - czy zajmuje miejsce w RAM czy tylko w FLASH?

    le jeżeli utworzę tablicę globalną jak poniżej: static const uint8_t tablica Nie. Co zrobi kompilator tego nie wiesz, bo modyfikatory static i const nie służą określaniu położenia zmiennych, czy tablic w pamięci. const ci jedynie daje tyle, że próba modyfikacji takiej tablicy powinna zakończyć się błędem podczas kompilacji. Oczywiście w praktyce, na...

    Mikrokontrolery ARM   16 Mar 2019 16:05 Odpowiedzi: 16    Wyświetleń: 960
  • [atmega8] [atmega8][c] - Jak obsłużyć czujnik Mobot przez I2C i wyświetlić wynik w mm?

    Problem leży w sposobie działania biblioteki TWI_Master i miejsca, skąd jej pośrednio używasz. TIMER0_OVF_vect, jak i każde inne przerwanie, uruchamia się z czasowo wyłączonymi przerwaniami, dlatego ani sonar_request, ani sonar_gets_distance nie zadziała z tego miejsca. Polecenia zostają zakolejkowane, i może tylko TWI::START zostaje wykonany. Możesz:...

    Mikrokontrolery AVR   14 Sie 2014 17:16 Odpowiedzi: 5    Wyświetleń: 1191
  • Atmega8: Jak generować PWM na OC1A i przerwanie co 1s z timer0?

    Wykorzystaj licznik 8-mio bitowy i w przerwaniu zwiększaj o 1 zmienną i jednocześnie sprawdzaj czy ta zmienna osiągnęła jakąś wyliczoną wartość - powiedzmy 1000. Jeśli nie to wychodzisz z przerwania a jeśli tak to wykonujesz kod który ma być wykonany w przerwaniu. W ten sposób zwiększysz programowo rozdzielczość licznika. [syntax=c]ISR(TIMER0_OVF_vect)...

    Mikrokontrolery AVR   12 Mar 2013 08:31 Odpowiedzi: 14    Wyświetleń: 2934
  • [atmega8][c] - Sterowanie 5metrowym paskiem led rgb

    Napewno [syntax=c]static volatile uint8_t cnt;[/syntax] Jeśli ta zmienna ma być modyfikowana w przerwaniu.

    Mikrokontrolery AVR   06 Wrz 2012 20:03 Odpowiedzi: 8    Wyświetleń: 6381
  • [Visual C#] Jak poprawić odbieranie danych z SerialPort w Visual C#?

    Cały czas kopię i poszerzam swoje OOP :) Jasne, odnośnie kilku instancji tej samej klasy nie mam wątpliwości. Odnośnie: No ale inna klasa może mieć do nich dostęp poprzez odpowiednie mechanizmy. Doczytałem, że mając zmienną zadeklarowaną jako "public static" mogę ją zmieniać w dowolnym miejscu programu i dodatkowo jest ona powiązana z klasą, a nie jej...

    Programowanie   24 Cze 2017 21:19 Odpowiedzi: 29    Wyświetleń: 2316
  • STM32F4 - Zmienne lokalne szybsze niż zmienne globalne.

    To zależy, co rozumiesz przez "lokalna". Pod względem zasięgu - lokalna, pod względem czasu życia - należy do sekcji statycznej, w której są wszystkie zmienne globalne, a nie do auto, w której są argumenty i i zmienne lokalne funkcji bez atrybutu static. Jeśli nie włączymy wściekłej optymalizacji typu LTO, to zmienna statyczna musi wylądować w pamięci...

    Mikrokontrolery ARM   26 Lut 2014 12:09 Odpowiedzi: 34    Wyświetleń: 4734
  • C, SPI, dwa urządzenia na magistrali i dziwne zachowanie.

    Wyjaśnił już to albertb . Zmienne static w funkcji to są takie zmienne globalne, które mają ograniczony zasięg to funkcji, w której występują. Oznacza to, że zmienna tmp przyjmuje wartość 22 podczas uruchamiania procesora, jeszcze przed funkcją main() . Funkcja zamiana1() modyfikuje zmienną tmp w taki sposób, że jej wartość po pierwszym wywołaniu jest...

    Mikrokontrolery   19 Maj 2012 19:39 Odpowiedzi: 7    Wyświetleń: 1518
  • 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
  • [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
  • C++ Visual Studio 2010 - Długość stringa i tablica jako zmienna globalna.

    static int^ rozmiarTablicy=0; zamień na static int rozmiarTablicy=0;

    Programowanie   23 Gru 2014 18:07 Odpowiedzi: 7    Wyświetleń: 981
  • Miernik częstotliwości na ATmega16 - przerwania i liczniki T0, T1

    Ja tu widzę następujące rozwiązania: 1) Użyć licznik T1 (licznik 16 bitowy). Przy taktowaniu 8MHz i ustawieniu preskalera 1:1024 można otrzymać czas równy: 1/8000000 * (32768 * 1024) = 4,19 sek 2) W funkcji obsługującej przerwanie użyć dodatkowej zmiennej: SIGNAL(SIG_OVERFLOW0) { static uint8_t licznik; //zmienna zliczajaca przejscia pętli, koniecznie...

    Mikrokontrolery   15 Lut 2008 16:19 Odpowiedzi: 12    Wyświetleń: 3441
  • MegaSuperDebounce - Biblioteka zaawansowanej obsługi przycisków AVR, ARM PIC ...

    //**************************************... // Plik: keyb.h // // Zaawansowana obsługa przycisków i klawiatur // Wersja: 1.0 // Licencja: GPL v2 // Autor: Deucalion // Email: deucalion#wp.pl // Szczegóły: http://mikrokontrolery.blogspot.com/2011... // //**************************************...

    Mikrokontrolery Początkujący   31 Sty 2021 12:28 Odpowiedzi: 67    Wyświetleń: 19011
  • [ATmega32L] Jak zmusić kompilator winAVR do poprawnej obsługi zmiennej Frame?

    po co to 'static'? 4\/3!! static przy zmiennej globalnej powoduje, że zmienna jest widoczna tylko w tym pliku w którym została zdefiniowana. Jest to tzw ukrywanie zmiennych globalnych

    Mikrokontrolery AVR   12 Paź 2008 19:33 Odpowiedzi: 14    Wyświetleń: 1636
  • ANSI C - 3 wywolania tej samej funkcji-3 zestawy parametrow

    Napisalem sobie funkcje, ktorej zadaniem jest wystawienie na PIN_OUT ustalonego sygnalu wejscioweo (w przykladzie ponizej jest to pin 3 portu A ustalony przez 100ms). while(1){ ... PIN_OUT = debounce(&PORTA,3, 100); ... } Funkcja jest wywolywana w glownej petli programu co 1ms, zwraca stabilny stan (0 lub 1) jezeli wewnetrzny...

    Mikrokontrolery   12 Kwi 2008 14:54 Odpowiedzi: 8    Wyświetleń: 1530
  • Atmega8 - Timer0 nie odlicza 1 sekundy przy 12MHz i preskalerze 256

    Poza tym to: TCNT0 = 130; Powinna być pierwszą instrukcją w przerwaniu, a tak w ogóle polecam poczytanie o trybie CTC - nie będzie trzeba martwić się o ciągłe ładowanie wartości timera. EDIT: A problemem właściwym jest nadmiarowy średnik, o tu: if(licznik == 375); jak go wywalisz to będzie w miarę OK. A zmienna nie musi być w tej sytuacji volatile,...

    Mikrokontrolery Początkujący   19 Lut 2013 14:47 Odpowiedzi: 4    Wyświetleń: 1116
  • Atmega8 Komunikacja TWI wysyłanie danych działa, odbiór nie

    Jak dla mnie to takie rzeczy są w przerwaniu niedopuszczalne. Ustaw sobie jakąś flagę i obsłuż w pętli głównej. [syntax=c] ISR(INT0_vect) { static uint8_t licznik; uint8_t zmienna; lcd_locate(0,0); lcd_str("licznik "); lcd_int(licznik++); lcd_locate(1,0); TWI_read_buf(RTC_ADRESS,0,1,&zmienna); lcd_int(zmienna); } [/syntax]

    Mikrokontrolery AVR   19 Lip 2015 12:56 Odpowiedzi: 5    Wyświetleń: 810
  • non-static variable this cannot be referenced from a static context

    Jak klasę NumberExample i IntegerExample zmienię na static to nie ma błędu kompilacji. Ale zmienna j która używa tej klasy jest zle wyswietlana pisze zad2integerexample(at)adrespamieci. Jak nie zmienię kodu to sie nie skompiluje. Chodzi o to żeby utworzyć typy kopertowe takie jak w jdk i użyć jakiejs funkcji z tamtad

    Programowanie Początkujący   17 Mar 2013 18:23 Odpowiedzi: 6    Wyświetleń: 2982
  • [ATmega8][WinAVR] - biblioteka Zaawansowana obsługa klawiatury jak uruchomic

    heh wydawało mi sie że skorzystanie z gotowca będzie łatwiejsze niż pisanie tych funkcji od podstaw :) listing pliku keyb.c [syntax=c] //**************************************... // Plik: keyb.c // // Zaawansowana obsługa przycisków i klawiatur // Wersja: 1.0 // Licencja: GPL v2 // Autor: Deucalion // Email: deucalion#wp.pl...

    Mikrokontrolery AVR   17 Cze 2013 19:56 Odpowiedzi: 9    Wyświetleń: 3270
  • Atmega88PA i RS485 - błędy w komunikacji przy echosondzie

    (at)arturt134 Robiłem to co mi sugerujesz - bezowocnie. Ale spostrzegłem ciekawą rzecz: wysyłając pakiet czynię to co parę sekund (ręcznie), przypadkowo dałem chwilkę czasu (5..10 min.) spokoju ATMEDZE (musiałem coś tam innego zrobić), po tym czasie znowu wysłalem pakiet i o dziwo ramka wyglądała jak po resecie uC! Ale następne znowu były oszukane....

    Mikrokontrolery   15 Lip 2010 16:09 Odpowiedzi: 31    Wyświetleń: 6672
  • Keil uVision2, miernik częstotliwości, zera na wyświetlaczu.

    To nie jest "Keil2 problem" tylko "programista problem" Wszysto działa z twoimi oczekiwaniami. fragment kodu: BCD[3] = Herc % 10; Herc = Herc / 10; BCD[2] = Herc % 10; Herc = Herc / 10; BCD[1] = Herc % 10; //Tego nie mogę dać do pętli Herc = Herc / 10; BCD[0] = Herc % 10; Herc = Herc / 10; notorycznie zeruje Herc - tak jak chciałeś. Wprowadz zmienna...

    Mikrokontrolery   22 Kwi 2007 08:49 Odpowiedzi: 1    Wyświetleń: 1041
  • Atmega16 i AVR Studio - problem z multipleksowaniem i funkcją inkrementacji

    Drogi kolego , popełniłeś szkolny błąd :D W procedurze obsługi przerwania Timer0 masz ... SIGNAL(SIG_OVERFLOW0) //obsługa multipleksowania wyswietlaczy { //extern unsigned char wyswietl[7]; unsigned char licznik;//<-- ********** błąd !!!!!!!!!!! ... zmienną licznik , tyle że jest to zmienna lokalna , czyli istnieje w pamięci...

    Mikrokontrolery   17 Paź 2006 18:33 Odpowiedzi: 2    Wyświetleń: 1237
  • [C] [C][AVR] - strtok_r i wskaźnik do wskaźnika: różnice w zachowaniu funkcji

    No ale w przerwaniu to mi się wydaje (o ile dobrze rozumiem), że bez static twoja zmienna zostaje za każdym razem utworzona na stosie po wejściu w przerwanie i przy wyjściu jest niszczona , ale .... no tak ale tu wydaje się ona być nie potrzebna pomiędzy przerwaniami bo chyba ją za każdym razej napełniasz tą funkcją SemaphoreGiveFromISR() zatem w zasadzie...

    Mikrokontrolery   30 Lis 2010 11:26 Odpowiedzi: 17    Wyświetleń: 2730
  • C - funkcja i zmienna globalna - jak poprawnie używać zmiennych globalnych?

    Należy unikać zmiennych globalnych. Zastanów się nad rozwiązaniem: [syntax=c]typedef struct { int zmienna_globalna; long druga_globalna; } MojeGlobalne; MojeGlobalne *globalne() { static MojeGlobalne ret; return &ret; } void funkcja(int zmienna) { if(zmienna) led_on(); } void funkcja_z_globalne() { funkcja(globalne()->zmienna_globalna); }[/syntax]

    Programowanie Początkujący   27 Wrz 2015 05:12 Odpowiedzi: 9    Wyświetleń: 1635
  • JAVA - Prosty kalkulator - pobieranie danych z klawiatury

    Program może wyglądać tak: [syntax=java] import java.io.*; public class Kalkulator{ public static void main(String[] args){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Podaj wartość"); String str_a = "", str_b = ""; try { System.out.print("a = "); str_a = br.readLine(); System.out.print("b = "); str_b...

    Programowanie Początkujący   18 Mar 2014 20:32 Odpowiedzi: 10    Wyświetleń: 2268
  • [c] Jak poprawnie includować pliki w AVR Studio 4 bez błędów?

    No i chyba nie można deklarować zmiennej jako extern a potem definiować jako static. To może niuans, ale taka interpretacja nawet mi nie przyszła do głowy, jak czytałem pytania. :) W każdym razie - w tym samym kontekście, oczywiście, nie można. Ale jeżeli w innym (wewnątrz funkcji czy bloku), to można - będzie to inna zmienna, przesłaniająca definicję/deklarację...

    Mikrokontrolery AVR   01 Mar 2011 18:46 Odpowiedzi: 30    Wyświetleń: 3885
  • Termometr bezprzewodowy 433 MHz - UART nie działa, odbiornik nie odczytuje danych

    Niestety pokazałeś zły kod - jak wpłynie na poprawność działania pokazanego przez Ciebie kodu: [syntax=c]RxCount=0x00;[/syntax] umieszczone w pętli głównej? Prawidłowo powinno być na przykład tak: [syntax=c]#include <avr/io.h> ... volatile uint8_t flaga; // liczba odczytanych bajtow volatile uint8_t temp[2]; // odczytana temp ISR(USART_RXC_vect)...

    Mikrokontrolery AVR   08 Lut 2016 21:12 Odpowiedzi: 20    Wyświetleń: 1971
  • 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
  • [C] zmienne static globalne/lokalne dwa pliki + nagłówki .h

    Słowo kluczowe "static" powoduje tylko, że zmienna jest statyczna, czyli nie jest likwidowana (zachowuje swoją wartość) po opuszczeniu bloku w którym została zadeklarowana - w przeciwieństwie do zmiennych automatycznych. I w zasadzie nic więcej. Nie ma wpływu na obszar swojej "widzialności". Niezupełnie tak. Owszem, jest tak w przypadku zmiennych zadeklarowanych...

    Programowanie Początkujący   01 Cze 2009 16:42 Odpowiedzi: 7    Wyświetleń: 5712
  • ATMEGA8A - USART: Jak odbierać stringi i wysyłać odpowiedź OK?

    Chodzi o deklarację zmiennej data W tym przypadku wystarczy, że bufor data zadeklarujesz jako static. Masz tu jeszcze kilka błędów. Funkcja receive zwraca char a Ty próbujesz zwrócić char *. Dodatkowo w main próbujesz przypisać to co zwraca receive do tablicy buffer (co sie nie powinno skompilować). Spróbuj tak: [syntax=c] static const unsigned char*...

    Mikrokontrolery Początkujący   29 Lut 2016 20:20 Odpowiedzi: 15    Wyświetleń: 1422
  • [C] Jak uśrednić wyniki ADC na ATmega 16 dla stabilnych pomiarów napięcia?

    WItam. Możlwości uśredniania czy po prostu cyfrowej filtracji sygnału może być kilka. Najprostrza to taka jak napisałeś - zbierasz kilka próbek pomiaru a następnie je uśredniasz. Może to wyglądać np tak: unsigned int pomiar; unsigned int usredniony_pomiar; unsigned char pomiar_licznik; static unsigned int temp; pomiar = ADC; // pobranie wartosci pomiaru...

    Mikrokontrolery   08 Maj 2008 21:25 Odpowiedzi: 3    Wyświetleń: 4192
  • [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
  • ST7Lite29 + Cosmic Idea 4K, pierwsze starcie == problem

    No widzę ze kolega łapie mnie za słowa ;) Ma to być zmienna zainicalizowana czyli zmienna która jest przypisana do sekcji inicjalizowanej. Czyli przy starcie systemu zmienna zdeklarowana jako: static char zmienna_a = 5; oczywiście podobna sytuacja dla każdej zmiennej zainicjalizowanej np. int licznik = 0; itp....itd... jeszcze przed skokiem do funkcji...

    Mikrokontrolery Pozostałe   04 Mar 2010 10:11 Odpowiedzi: 3    Wyświetleń: 2890
  • ATmega328PB + PCINT od dwóch enkoderów - gubi impulsy enkoderów

    Po co druga zmienna statyczna (b0)? [syntax=c] static int a0, b0; int a = odczyt_pina(); int b = odczyt_pinb(); if (a != a0) { a0 = a; if (b !=b0) { b0 = b; if (a == b) { //-- } else { //++ } } } //Drugi enkoder analogicznie, np.: a_1, a0_1, ... [/syntax] Zakładam, że a i b to kanały jednego z enkoderów. Zatem inkrementacja/ dekrementacja zmiennej określającej...

    Programowanie   19 Lis 2021 10:42 Odpowiedzi: 25    Wyświetleń: 615
  • [ATmega16][C/AVRStudio] Układ nadążny za słońcem+LCD+MENU

    Tak, jeśli zmienna będzie w obsłudze przerwania to musi być static, aby zachować wartość pomiędzy wywołaniami. Powodem mrugania wyświetlacza jest przede wszystkim nadpisywanie miejsca spacjami, a dopiero potem wyświetlanie pożądanej wartości. Oczywiście takie częste modyfikowanie tekstu niczemu nie służy, tym bardziej, że w większości przypadków na...

    Mikrokontrolery AVR   10 Lis 2010 22:21 Odpowiedzi: 104    Wyświetleń: 14547
  • [bascom] Jak wyodrębnić wartość XX z danych RS232 w Bascom?

    Wszystko super Piotrze ale C to nie mój konik. Rozumiem z tego chyba: http://obrazki.elektroda.pl/4344270200_1... http://obrazki.elektroda.pl/3695670800_1...

    Mikrokontrolery AVR   17 Kwi 2015 13:13 Odpowiedzi: 27    Wyświetleń: 1785
  • Błąd w ArduinoIDE: 'void Thread::runned()' jest chroniona - Arduino UNO R3, shield CAN-BUS MCP2521

    Błąd oznacza, że zmienna 'lastBSIemul' nie została zadeklarowana... ciężko coś więcej powiedzieć nie mając całości kodu. Ten projekt kompiluje mi się bez błędów: https://github.com/ludwig-v/arduino-psa-... W nowszej wersji brakuje deklaracji tej zmiennej: https://github.com/ludwig-v/arduino-psa-... Wystarczy dopisać w sekcji Variables linijkę:...

    Arduino   05 Mar 2021 23:11 Odpowiedzi: 9    Wyświetleń: 1017
  • [STM32F103C8T6] [STM32F103C8T6][FreeRTOS][C] Semafor w przerwaniu nie działa poprawnie

    Z mojej praktyki z FreeRTOSem wiem, że FreeRTOS głupieje jak zmienna lHigherPriorityTaskWoken nie ma modyfikatora static . U mnie objawiało to się wyjątkiem HF Według mmnie masz problem w innym miejscu i bo static tam nie jest potrzebny.

    Mikrokontrolery ARM   21 Lis 2017 12:42 Odpowiedzi: 25    Wyświetleń: 1716
  • [STM32] [STM32][C] Timer2 - dlaczego LED zmienia stan co 5s zamiast 10s?

    Witam. Moje pytanie jest następujące. Napisałem prosty program który ma za zadanie zmieniać stan wyjścia za każdym razem na przeciwny. Wszystko było by w porządku gdyby nie czas , a mianowicie. Moje obliczenia : 36Mhz(Timer2) / 36000(Prescaler) = 1ms. * 10000(ARR) = 10s i w takim czasie powinien zmienić się stan Leda. W praktyce jednak dzieje się to...

    Mikrokontrolery ARM   29 Lis 2011 18:18 Odpowiedzi: 6    Wyświetleń: 3530
  • ARM7: Anomalie przydziału pamięci dla tablic static i normalnych w C

    Tablica uint8_t może nie być wyrównana (jej pierwszy adres może być równy np 1 albo 3, a ARM7 nie obsługuje niewyrównanego dostępu. Jeśli odczytasz uint16_t z niewyrównanego (niepodzielnego przez 2) adresu rezultat jest nieprzewidywalny, włącznie z zawieszeniem układu. Sam dodatkowo wprowadzasz zamieszanie, bo adres rzutujesz na wskaźnik ze znakiem,...

    Mikrokontrolery   09 Gru 2010 18:10 Odpowiedzi: 5    Wyświetleń: 1226
  • Atmega8 - Błąd main is a normally non-static function przy kompilacji kodu ADC

    A na przyszłość przecież możesz sobie komentować klamerki. Ja dla ułatwienia (mimo wcięć) ważniejsze klamerki oznaczam np. } //End while(1) , } //End If "zmienna użyta w warunku". To naprawdę pomaga.

    Mikrokontrolery AVR   30 Sty 2014 17:14 Odpowiedzi: 13    Wyświetleń: 1938
  • Atmega8 - Timer1 nie odlicza czasu przy kwarcu 16MHz i preskalerze 64

    Zmienna sek powinna być volatile: http://mikrokontrolery.blogspot.com/2011... ssek natomiast zrób statyczną w funkcji przerwania: unsigned tam gdzie liczby nie będą ze znakiem. Wprawdzie ani godziny, ani minuty, czy też sekundy nie przekroczą maksymalnych ich wartości, ale porządek warto mieć. Poza tym, taktujesz swój mikrokontroler...

    Mikrokontrolery AVR   08 Gru 2014 22:35 Odpowiedzi: 7    Wyświetleń: 1065
  • [ATmega8][C] - Odróżnianie kolejności naciśnięcia przycisków

    keyb.h [syntax=c] //**************************************... // Plik: keyb.h // // Zaawansowana obsługa przycisków i klawiatur // Wersja: 1.0 // Licencja: GPL v2 // Autor: Deucalion // Email: deucalion#wp.pl // Szczegóły: http://mikrokontrolery.blogspot.com/2011... // //**************************************...

    Mikrokontrolery AVR   19 Lis 2014 21:37 Odpowiedzi: 4    Wyświetleń: 1146
  • Znaczenie `static double limitValue` i `static long value` w skrypcie WinCC?

    #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { // WINCC:TAGNAME_SECTION_START // syntax: #define TagNameInAction "DMTagName" // next TagID : 2 #define ZMIENNA1 "krancowka.stan" // WINCC:TAGNAME_SECTION_END // WINCC:PICNAME_SECTION_START // syntax: #define PicNameInAction "PictureName" // next PicID...

    Automatyka Przemysłowa   29 Wrz 2009 17:30 Odpowiedzi: 1    Wyświetleń: 1608
  • Znaczenie static przy deklaracji zmiennych w C - przykład z przerwaniem Timer 0

    Co oznacz "static" przy dekalracji zmiennych np. static unsigned char zmienna=0; Jest cos takeigo np: #include <sfr51.h> void main () { //ustawienie parametrow przerwania od Timera 0 TMOD=0x01; TR0=1; ET0=1; IP=0x02; //najwyzszy priorytet dla przerwania od Timer'a 0 EA=1;//globalne odblokowanie systemu przerwan P0=0x00; P1=0x00; P2=0x00;...

    Mikrokontrolery   10 Wrz 2004 17:36 Odpowiedzi: 1    Wyświetleń: 1481
  • BTM112 - Jak sprawdzić status połączenia Bluetooth między ATmega32A i ATmega8L?

    Witam Czy istnieje w modułach bluetooth coś w stylu flagi nawiązania połączenia tzn. master zapala flagę gdy sparuje się ze slavem, a gasi ją gdy połączenie zostanie przerwane? Program miałby działać tak: Po nawiązaniu połączenia między mikrokontrolerami (ATmega32A i ATmega8L) za pomocą nadajników bluetooth przesyłany jest ze slave'a do mastera klucz...

    Mikrokontrolery Początkujący   20 Mar 2017 22:37 Odpowiedzi: 13    Wyświetleń: 1266
  • [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
  • AVR - ATMega644PA: Przerwanie UART nie przerywa pętli w funkcji

    W jakim celu zmienna FLAGA jest statyczna? To jest zmienna globalna. Czy to jest nieprawidłowe użycie zmiennej statycznej? Zdecyduj albo statyczna ("static" ogranicza zakres do danego pliku) albo globalna. Ewnetualnie zdefiniuj co rozumiesz przez "globalna".

    Mikrokontrolery   07 Gru 2015 21:45 Odpowiedzi: 11    Wyświetleń: 1038
  • Zliczanie impulsów enkodera 100 impulsów/obrót – AVR, wyświetlacz nie reaguje

    1. void ReadEncoder(); #define GLUE(a, b) a##b #define LEDPORT1(s)GLUE(PORT,s) #define LEDPORT LEDPORT1(LED) #define LEDDDR1(s)GLUE(DDR,s) #define LEDDDRLEDDDR1(LED) a) Co to jest? Coś jak podprogram? Ale dlaczego zakończony średnikiem? Pierwsza linia to deklaracja funkcji, dalsze linie...

    Mikrokontrolery AVR   27 Gru 2012 23:08 Odpowiedzi: 20    Wyświetleń: 4389
  • Atmega644PA - Obsługa przerwania, multipleksowanie ADC

    Chciałbym zwrócić uwagę na odczyt wyniku konwersji: [syntax=c] ... uint16_t ConversionResults[ADC_CHANNELS]; // zmienna 16bitowa ... ADMUX = 0x60; // AVCC with external capacitor at AREF pin, left adjust result; // left adjusted, czyli przesunięty o 6 bitów w lewo !!! ... static const uint8_tChannelMUX[ADC_CHANNELS] = {0x61, 0x62, 0x63}; // włączony...

    Mikrokontrolery   10 Sty 2016 16:07 Odpowiedzi: 53    Wyświetleń: 2865