Odnośnie zapytania zawartego w tytule wątku. Najprościej oprogramować zdarzenie 'przy zmianie' OptionButton'a. Oba są kontrolkami jednej ramki, więc upraszcza to zadanie (jeden wymusza zmianę drugiego). Uwagi: 1. Trzeba założyć, że dokonano już wyboru - w związku z tym zmienna temp i przemnożenie (zmiana znaku) przez -1 (dwa minusy dają plus) 2. Wypełnienie...
Tak już uroda C. I bardzo dobrze ;). Różnica polega tylko na dostępności zmiennej. Statyczna lokalna zmienna dostępna jest tylko w ciele funkcji, zmienna globalna dostępna jest dla wszystkich funkcji zapisanych w tekście programu po deklaracji tej zmiennej? O, już ktoś odpowiedział.
Zmienna globalna, inicjujesz na początku programu.
Zmienne globalne są sztywne, czyli może się okazać że zrobiłeś kilka bibliotek zaś nie możesz je użyć razem ponieważ mają zmienną globalną o tej samej nazwie. W C++ jest na to kilka prostych tryków, zaś w C - nie Tu chyba nie masz racji, ponieważ zmienna zdefiniowana zewnętrznie, tak jak napisał kolega (at)Kużdo, trzeba używać rozważnie. Jeżeli chodzi...
w sumie zmienne możne podzielić na kilka rodzajów. Główny podział to globalne i lokalne. Każdy z tych typów może być również zmienną statyczną, przy czym oznacza to co innego dla każdego typu. Lokalna zmienna statyczna jest widoczna tylko w bieżącym bloku kodu (między"{" "}"). Globalna zmienna statyczna to zmienna widoczna tylko w jednym pliku. Z pkt....
Nie zostaje wyzerowana, ona całkowicie znika. To co napisałeś powoduje utworzenie zmiennej lokalnej, o takiej samej nazwie jak zmienna globalna (jest ona w ciele funkcji przesłonięta). Zmieniasz więc wartość zmiennej lokalnej, która po opuszczeniu funkcji jest niszczona i tworzona ponownie po wejściu do tej funkcji. W efekcie zmienna globalna zmienna...
Probowales 'r' zadeklarowac jako zmienna globalna - ale bez inicjalizacji, wzglednie inicjalizujac jakas konkretna wartoscia stala, a w funkcji przypisac wartosc? Bo tak powinno dzialac.
Zadałeś pytanie: Jak działa mój kompilator C ? 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. Natomiast jeśli jest pamiętana w SRAMie to czas dostępu do niej nie powinien różnić się od czasu dostępu do zmiennej globalnej....
Za każdym razem jak uruchamiasz tę funkcję zmienna x jest na początku ustawiana na wartość 0. Przenieś deklarację zmiennej x poza funkcję (ma to być zmienna globalna).
No to tak. Nie lubię _delay(). Do kodu menu tmf dodałem timer programowy z książki Mirka. Najpierw kompilator powiedział mi że jestem głupi bo nie widzi Timer1 w pliku menu_alfa. To zgodnie z tym co napisł tadzik85 napisałem że jest extern volatile- no to kompilator się na to zgodził. Chociaż nie rozumiem- przecież Timer1 jest volatile- globalny w...
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...
[syntax=c]unsigned char buffer[3] = {}; // zmienna globalna[/syntax] Za mały bufor na 3 znaki - gdzieś trzeba zmieścić NULL. [syntax=c]buffer=="abc"[/syntax] warunek nigdy nie zostanie spełniony - porównujesz wskaźniki na tablice. Powinieneś użyć coś w rodzaju strcmp().
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Masz dwa sposoby 1. Zrób zmienną globalną (i ustaw jej wartośćw jakiejś procedurze startowej i już więcej jej nie zmieniaj. Powtórzę za jednym z portali: Zmienną globalną deklarujemy w nagłówku przed procedurami / funkcjami używając do tego jednego z dwu słów kluczowych: Private Public Dostęp do pamięci “Private” mają wszystkie makra w obrębie...
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 :) ).
Dodaj zmienna globalną i za każdym razem ją powiększaj (zwróć uwage gdzie jest deklaracja zmiennej "i" - to ważne) Dim i As Integer Sub kopiowanie() i = i + 1 ActiveSheet.Columns(5).Copy ActiveSheet.Columns(6 + i).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub
Witam mam problem z programem do Serwa step dir na silniku DC z enkoderem , chodzi mi o pomoc w zrozumieniu zasady działania tak na chłopski rozum jak powinno się to odbywać naprawde z regulatorem PID . Ja piszę w bascomie jeśli ktoś może pomóc byłbym wdzięczny. Zrobiłem sobie enkoder do silnika o małej rozdzielczości na obrót 10 impulsów , celowo taki...
Jeżeli zmienna jest globalna, to masz dostęp do niej zarówno w przerwaniu jak i poza ciałem przerwania.
A to znaczy, że jak użyję jakieś bibliotecznej funkcji to nie weźmie pod uwagę register unsigned char zmienna asm("r2"); ? Czyli jak avr-libc trzeba zmodyfikowac? To tak na boku, bo i tak będę używał tylko avr/io i avr/pgmspace w tym fragmencie kodu. Nie chodzi o fragment, chodzi o całość! Choć nieprecyzyjnie się wyraziłem. Zobacz, jeżeli w czasie...
Zależne od kompilatora, a czasem wręcz od jego ustawień. Dobrym nawykiem jest inicjować nawet wtedy, gdy nie ma takiej potrzeby w danym środowisku. Nieprawda. Wszystkie zmienne globalne są domyślnie zainicjowane wartością zero, niezależnie czy są to typy proste czy złożone. Wynika to wprost ze standardu języka c. 1. Wtedy jeszcze jednoznacznie nie...
Możesz zrobić to przez zmienna globalną. Gdy zmienna 0 to po kliknięciu wykonuje się kod a gdy 1 to nic sie nie dzieje jak coś znajde wiecej to napisze Dodano po 2 Już znalazłem Enabled=False to przycisk niedziała a jak True to działa w programie to robisz tak Button1->Enabled=False; lub Button1->Enabled=True;
wychodzi na to ,ze PrinterIndex jest "zmienna globalna". co do twojego pytania to trzeba np 2 razy wywolac PrintDialog,albo robisz 2 razy comboboxy, wczytujesz drukarki (uzytkownik wybiera drukarki w obu jednoczesnie) a pozniej do PrinterIndex przypisujesz ItemIndex najpierw z jednego combo a pozniej (po wydrukowaniu z pierwszego obiektu) z drugiego...
Przepraszam za opóźniony powrót do tematu ale musiałem do tego dojrzeć... 1. char a unsigned char (uint8_t) to co innego. string napisany tak jak w wywolaniu twojej funkcji jest typu char*. musisz wiec albo zmienic swoja funkcje, albo zrzutowac na (uint8_t*), albo to olac... Wydawało mi się że dowolna ośmiobitowa zmienna będzie miała taką samą interpretację...
W kompilacie nie ma nic ciekawego: albo jest zapis do zmiennej (wtedy zakładam, że została potraktowana jako volatile ), albo nie ma nic (powrót z main do procedury "rozbiegowej") :) Nie chciałem jeszcze bardziej wydłużać postów wklejaniem listingów. A czy problem jednak nie leży w trywialności tego kodu? Tak przypuszczam, m.in. stąd pytanie: Czy kompilator...
Gdzie trafi zmienna lokalna w main zainicjowana i nie niezainicjowana ? Zależy co rozumiesz przez "lokalna". Generalnie do celu tej dyskusji proponuję się ograniczyć do podziału na "statyczne" (m.in. globalne) i "automatyczne" (czyli zmienne "w" funkcjach, oczywiście bez "static"). Te pierwsze lądują w .data lub .bss (zależnie od tego czy są zainicjalizowane...
każda jest dla mnie cenna Może nie do końca na temat, ale: jeśli zmienna LicznikKonfiguracyjny jest globalna, to nie musisz jej przekazywać (jako parametru) każdej funkcji osobno. Każda z tych funkcji może się do niej (zmiennej globalnej) odwołać bezpośrednio. Zmiennych globalnych generalnie należy unikać. Np. w Twoim kodzie SredniaADC i WartoscADC...
Witam mam problem z programem do trawiarki mianowicie znalazłem na necie program do sterowania trawiarką chciałem do tego dopisać wybór menu żeby było jeszcze był drugi tryb sterowania trawiarką. Wgrałem program do uC i działało poprawnie potem chciałem wgrać ten sam program bez żadnych zmian na inna ATmege8 i okazuje się że teraz program działa trochę...
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
Zaraz dokonam kilku kosmetycznych zmian i ponownie dodam enable timer2. Dam znać o efektach Dodano po 13 Do dyspozycji mamy nastepujący kod, który generalnie już działa (z małymi wadami) Dodano po 4 Czy obecnośc obliczeń w obsłudze przerwania może dawac taki efekt? Dodano po 14 Kolejna wersja kodu z obliczeniami w pętli głównej. Nie zmieniło to działania...
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);...
Modulo jest po to, żebyś nie wyszedł poza zakres tablicy, no i żeby zrealizować przejścia: 15 -> 0: 15 + 1 == 16, 16 % 16 == 0. 0 -> 15: 0 - 1 == -1 == 255, 255 % 16 = 15. O wydajność się nie martw, już pierwszy kompilator C optymalizował operacje dzielenia i modulo 2^n. Zmienna statyczna w funkcji jest inicjowana tylko za pierwszym razem....
Ja mam nadzieję, że problem leży po mojej stronie. Bo inaczej sytuacja jest niewesoła a termin trzyma... Oto kod: #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 16000000UL // 16 MHz #include <util/delay.h> #define DATASIZE 16 #define MICROSTEPS 256 //to musi być potęga 2-ki volatile unsigned int microstep, bytecount,...
Dawid.wielun tak na szybko napisane sprawdzanie przycisków lewego prawego i środkowego int mouse_click_check(void){ int i=0, bl=0, bl2=0, br=0, br2=0, bm=0, bm2=0;//left right middle while(zmienna globalna=0 przerywa sprawdzanie){ bl2=bl;bl=::GetKeyState(VK_L... br2=br;br=::GetKeyState(VK_R...
Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną Zmienna "i" służy do wybierania który wyświetlacz ma być aktualnie włączony. Jeśli chodzi o zadeklarowanie tej zmiennej jako globalną to oczywiście masz rację.
Nie śmieję się, ale przecież zapisywanie stałych w rejestrze systemu nie jest najlepszym pomysłem. Kto potem będzie ten rejestr odśmiecał ? Użytkownik usuwa aplikację a śmieci w rejestrze niestety zostają. Bez zrobienia instalatora/deinstalatora nie wolno robić takich rzeczy :) Z kolei niestatyczna zmienna globalna to zło zabijające obiektowość języka...
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ą...
Witam, mam taki problem, że w kodzie zmienna globalna jest tj nie widziana przez program, podam przykład i wytłumacze: #include <avr/io.h> #include <avr/interrupt.h> #define GREEN_LED_ON PORTB |= 0x1; #define GREEN_LED_OFF PORTB &= 0xFE; #define RED_LED_ON PORTB |= 0x2; #define RED_LED_OFF PORTB &= 0xFD; #define RELAY_ON PORTB |=...
zdefiniuj show_resultb poza funkcjami np gdzieś na samej górze, wtedy ta zmienna będzie globalna dla całego programu (no prawie). Ale jeśli zdefiniujesz tą zmienną dodatkowo w jakiejś funkcji to w tej funkcji odwołując się to tej zmiennej będziesz się odwoływał do zmiennej lokalnej (na stosie)
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;...
Sub Write_eeprom(adres As Byte , Value As Byte) I2cstart I2cwbyte I I2cwbyte Adres I2cwbyte Value I2cstop Waitms 10 End Sub Nie wiem jak w bascomie bo w nim różnie bywa;P Ale to I to jest zmienna globalna? Dodano po 1 A jeśli nie chcesz gotowca, ale nie potrafisz, to się za to nie bierz:) A jeśli musisz, zleć komuś na odpowiednim forum albo walcz;)
Mam taką bibliotekę zaimportowaną :) Pierwszy raz mam styczność z Visualem i na każdym kroku mam jakieś problemy :) Dodano po 1 Dodałem program z załączniku w pierwszym poście.
Tyle ,ze właśnie zasięg tej zmiennej globalnej , jest tylko względem jednego pliku ( static w tym utwierdza ) , więc żadne externy nie wchodzą w grę , i o zasięgu zmiennych trochę wiem , dlatego dziwi mnie to okropnie :)
Tutaj nie ma żadnego () obok zmiennej :) W skrypcie masz deklarację funkcji o nazwie na_stronie , tam nawiasy muszą po prostu być, bo tak się deklaruje funkcję: [syntax=javascript]function na_stronie() { ... }[/syntax], a w znaczniku <body> każesz przy załadowaniu strony (onload) wywołać (jednorazowo) właśnie tą funkcję: [syntax=html4strict]<body...
Można jeszcze zadeklarować zmienną w pliku jednym i drugim z tym że w drugim zmienna z parametrem 'extern' - kompilator będzie szukał zmiennej w innych plikach. No się spóźniłem ;)
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;...
(at)ElektrodaBot Czy istnieje metoda, aby wyświetlić model mikroprocesora, na którym skompilowany jest program w AVR GCC? Może istnieć zmienna globalna lub możliwość odczytu rejestrów.
jeżeli zmienna 'a' jest zadeklarowana jako globalna i jako volatile, to jest to ta sama zmienna zarowno dla main() jak i dla przerwania, więc w main() nie bedzie sie zerowac (no chyba ze wpiszesz ze a = 0 to oczywistym że sie wyzeruje)
(at)Gunis-92: Możesz wykorzystać do odmierzania czasu np. SysTick [syntax=c] volatile uint32_t licznik_tykniec;// zmienna globalna /* obsluga przerwania od licznika/timera SysTick */ void SysTick_Handler(void) { licznik_tykniec++;// inkrementacja licznika } void delay(uint32_t czas) { uint32_t aktaualny_licznik_tykniec; aktaualny_licznik_tykniec = licznik_tykniec;...
Masz takie same nazwy zmiennej globalnej i parametru przekazywanego do funkcji. W tej sytuacji lokalna zmienna przysłania globalną - czyli zmieniasz wartość kopii parametru przekazanego do funkcji. Możesz albo zrezygnować z parametru, zwracać wartość z funkcji, albo przekazać wskaźnik na zmienną. Jeszcze lepszym rozwiązaniem (z programistycznego punktu...
A, to jak chodzi o losową fugurę, to najlepiej zacząć od tego, aby utworzyć je dynamicznie i zapisać do tablicy. Ale nawet jeśli nie, to możemy takową tablicę utworzyć na podstawie istniejących: [syntax=Delphi]var Shapes: array[0..9] of TShape; ... d:=0; for i:=0 to ComponentCount-1 do if Components[i] is TShape then Shapes[d]:=Components[i];[/syntax](piszę...
globalny zmienna stm32 zmienna globalny deklaracja zmienna globalny
volvo silnika moeller xcomfort pralka sharp opinie
telewizor xiaomi intel celeron n3350
Schemat zapłonu Yamaha YN Neo’s 2T – opis układu AC-CDI, kolory przewodów, diagnostyka CDM12.1 - Mechanizm lasera optycznego w odtwarzaczach CD