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...
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 :) ).
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ł.
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...
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...
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...
Zadeklaruj w form1 globalna zmienna np tak: var lancuch:string; A potem z drugiej odwoluj sie tak form1.lancuch:=edit1.text Warotsc z przykladowego pola edit z form2 zostanie przeniesiona do string zadeklarowanego w form1.
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...
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...
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...
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ę...
Zmienna globalna, inicjujesz na początku programu.
Ź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ę.
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ę...
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...
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
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,...
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....
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...
Zrób tak jak radzi kolega czesiu . Przenieś część tej deklaracji, dotyczącą zmiennej x, poza procedurę. Dim x, wynik As Long Zadeklaruj x jako zmienną globalną w głównej części programu. Dim x As Long Jeżeli nie zmienisz deklaracji z lokalnej na globalną, zmienna x będzie deklarowana oraz zerowana przy każdym przyciśnięciu klawisza a następnie usuwana...
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;
Probowales 'r' zadeklarowac jako zmienna globalna - ale bez inicjalizacji, wzglednie inicjalizujac jakas konkretna wartoscia stala, a w funkcji przypisac wartosc? Bo tak powinno dzialac.
Jeżeli zmienna jest globalna, to masz dostęp do niej zarówno w przerwaniu jak i poza ciałem przerwania.
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...
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ż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 ;)
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().
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)
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,...
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
Jeśli chodzi o zmienną to musisz dodać do okna głównego zmienną globalną a w nowym oknie też musisz dodać zmienną globalną tylko że przed zmienna musisz dodać słowo kluczowe extern: [syntax=cpp]//okno glowne int twojaZmienna=0; //nowe okno extern int twojaZmienna; //nie można inicjalizować [/syntax]
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)
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...
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...
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...
Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...
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....
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);...
W tym celu zmienna "wiersz" powinien być zadeklarowany jako globalna. Wtedy Range("D" & wiersz) = kw1.Text
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...
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...
komorka(i, 3).Value = suma i - to globalna zmienna? dodaj zalacznik
Zmienna softTimer to globalna zmienna typu volatile Nie ma takiego typu. Podaj jej definicję oraz zawartość ISR. Może to mieć wpływ przy nieatomowym dostępie. Albert
HANDLE hCom; //globalna zmienna void inicjalizacja(void) { hCom = CreateFile(.....) GetCommState(...) SetCommState(...) return ; } void zamykanie(void) { CloseHandle(hCom); return; } albo HANDLE inicjalizacja(void) { HANDLE hCom = CreateFile(.....) GetCommState(...)...
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ą...
Mam taki oto programik: [syntax=c]#include <iostream> using namespace std; int zmiennaGLOB; int main() { int zmiennaLOK; cout << "Zmienna globalna: " << zmiennaGLOB << endl; cout << "Zmienna lokalna: " << zmiennaLOK << endl; return 0; }[/syntax] zmiennaGLOB zwraca 0 zmiennaLOK zwraca śmieci Z czego to wynika?...
Zadeklaruj typy tylko w .h, a przed #include w pliku .c, który ma zawierać zmienne, daj #define extern (puste); możesz też użyć #ifndef extern w pliku .h, żeby pominąć to, co ma być #include-owane przez inne pliki .c, a w tym ze zmiennymi nie powinno być. Przedefniniowywanie znaczenia jakiegokolwiek słowa kluczowego (tutaj: extern) za pomocą preprocesora...
Co jest jeszcze źle ? Pominąłeś 1. Użycie zmiennych globalnych. Globalna zmienna i używana jako indeks w każdej pętli to tragedia; każda pętla powinna mieć własny indeks! Zmienna tablica też powinna być lokalna wewnątrz funkcji main.
zmienna globalny stm32 zmienna globalny deklaracja zmienna globalny
chłodzenie oleju silnikowego elektrotechnika ogólna książka głowica zebra
przetwornica 230vac 110vdc pralka hisense
Bezpieczniki i przekaźniki w Peugeot 308 SW 2.0 HDi 2012 Różnice między potencjometrami 114 i 115 oraz zamienniki dla Unitra MDS 432