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....
statyczną możesz używać tylko w tej funkcji, czasami bezpieczniejsz abo nie zmienisz przypadkiem ;) globalną używasz wszędzie
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 :) ).
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...
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.
Zmienna globalna, inicjujesz na początku programu.
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....
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...
Ź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ę.
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.
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...
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,...
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)
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...
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
... więc albo ja czegoś nie rozumię albo coś nie tak z kompilatorem?? . na 100% ty czegoś nie rozumiesz i proponuję ci abyś na długo długo odpuścił sobie domniemania, że coś nie tak jest z kompilatorem. Szukaj zawsze u siebie błędu i poczytaj o nudnym już na elektrodzie - volatile Nudnym - bo typ zmiennej volatile a w zasadzie ten problem występuje...
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...
komorka(i, 3).Value = suma i - to globalna zmienna? dodaj zalacznik
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...
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);...
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
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...
Odpowiedź jest bardzo prosta potrzebna Ci globalna zmienna w której będzie wynik a podczas wyboru będziesz dodawał do niej 1 lub nie a jeśli wprowadzisz ujemne punkty to odejmował :) Pozdrawiam
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]
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....
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?...
Dodałem te flagi do kompilatora ale niestety nadal jest ten sam błąd... (multiple definition of `malloc' ) W innych kompilatorach jest globalna zmienna __malloc_hook gdzie można wpisać adres swojej funkcji malloc ale w tym GCC tego nie ma (przynajmniej mi nie udało się tego znaleźć)
(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.
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.
volatile gdy zmienna używana jest w przerwaniu czy przez dma i w programie głównym. static zachowuje się jak zmienna globalna ale widoczna jest tylko w funkcji, w której została poowłana. To jeszcze wyjaśnij co to jest auto, constexpr oraz mutable :) Jeżeli zmienna globalna zadeklarowana jest jako static, to co wtedy?
Jaka jest wartość zmiennej Uas? To globalna zmienna? Oprócz dodawania pozycji na liście ComboBox jest metoda .AddItem, i nie właściwość Value. Lub co najmniej naciśnij klawisz F1, aby wprowadzić Szukaj ComboBox i zobacz metody i właściwości oraz 'Example'
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...
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...
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;)
Też o tym pomyślałem i częściowo ma to sens. Czemu częściowo? Bo w funkcji pomiaru temperatury jest wyznaczana globalna zmienna Tfine, która użyta jest w funkcji pomiaru wilgotności (i ciśnienia) do kompensacji temperaturowej... także siłą rzeczy pomiar wilgotności wykonuję po pomiarze temperatury. Nic to nie zmienia. Czujnik "sieje" pomiarami. Co ciekawe...
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.
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;...
W tym celu zmienna "wiersz" powinien być zadeklarowany jako globalna. Wtedy Range("D" & wiersz) = kw1.Text
pomysł jest taki, żebyś wrzucił kod. 4\/3!!
Czy deklarując w bascomie globalna zmienna tablicowa byte o wielkośći 224 Dim Tablica(224) as byte Muszę jakość ją uwzględnić przy parametrach $hwstack = 250 $swstack = 250 $framesize = 25 Procesor to atmega64
masz błąd składniowy w funkcji - proponuję użyć konsoli błędów JS ;) Zmienna globalna to po prostu zmienna zdefiniowana poza wszystkimi funkcjami. Tak po prostu.
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ą...
To będzie najprawdopodobniej inny błąd. To, że wskaźnik jest jako globalna zmienna a nie w main() to robi tyle, że jest w sekcji .data albo .bss w zależności od inicjalizacji wskaźnika, a jak jest w main to jest nie w żadnych rejestrach ale na stosie. I to i to jest w RAMie. Jedyną rzecz jaka może być nie w RAMie to są stałe do odczytu, ale to zależy...
To za ciosem jeszcze dorzućmy zbędne zmienne globalne. Która zmienna według Ciebie wymaga użycia "volatile"?
Łańcuch z diod LED. Może podpowiecie, jak napisać taką wstawkę w asemblerze do przerwania od Timera. Zmienna globalna pwm jest porównywana ze zmienną licznik (zwiększana w przerwaniu). Jeżeli większa, to LATX HI else LATX LO. Zmienna globalna będzie normalnie widziana w stawce asemblerowej?
Rzeczywiście. Rozmiar stosu mam 1024 więc się przepełnia. Dzięki. Skoro stos ma rozmiar 1024B to pozostałymi 111kB SRAMu są nie używane? Co stoi na przeszkodzie na rozszerzeniu stosu na cały zakres pamięci? Nie ma innego sposobu niż globalna zmienna? Czasami potrzebuję zapisać dużo danych tylko w obrębie jednej funkcji. Natomiast Malloc wydaje mi się...
Jeśli zadeklarujesz zmienną globalną (Public zmienna As typ) w module , będzie widoczna w całym projekcie...
A gdzie tam jest jakaś zmienna globalna? Właśnie nie ma.
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
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;...
Nie rozumiem do końca... W WM_PAINT nie masz żadnego przypisania do niej wartości. Każde wywołanie funkcji (a ściślej: wyjście z bloku, w którym zadeklarowano zmienną) powoduje utracenie zmiennej. Jeśli chodzi Ci o jakieś przekazywanie wartości przy każdym z wywołań, to trzeba albo w wiadomości przekazać informacje (z jednoczesną "ręczną" alokacją pamięci...
zmienna globalna i po prostu licz.
Nie znam się na bascomie, ale widze, że wartości odczytane z zegarka są przypisywane do zmiennych, które są argumentami funkcji. Jeśli argumenty przekazywane są przez wartość, to wtedy dane z zegarka zostaną wpisane do lokalnych kopii tych zmiennych, przy kończeniu funkcji zostaną utracone. Jak wygląda przekazywanie zmiennych przez referencję? Jest...
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...
Czy zmienna kierunek jest globalna i volatile? Już po pierwszym przerwaniu powinna przyjąć wartość 1 lub 2, a nie być cały czas 0. Czy zaobserwowałeś zwiększanie wartości zmiennej enkoderA ?
(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;...
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ę...
Pierwszy przykład to zmienna globalna alokowana w pamięci danych. Drugi to zmienna lokalna umieszczona na stosie. Z logicznego punktu widzenia zmienna i jest widoczna tylko w pętli, więc jest usuwana po wyjściu z niej programu. W rzeczywistości kompilator to optymalizuje i fizycznie ta zmienna nie jest usuwana z pamięci z każdym przebiegiem pętli. Możesz...
Masz dwa razy deklaracje tablicy kod[]. Z tego co pamiętam to zmienna lokalna przysłania globalną, więc w mainie i przerwaniu operujesz na dwóch róznych zmiennych. EDIT: Tak, dobrze pamiętam, lokalna zmienna przesłania globalną ;)
Witam Panie Kubo. Czyli innej opcji nie ma na przypisanie wartości? Pan tak przypisuje w swoich programach, i wszystko działa tak jak należy? Bo wie Pan ja np. jak potrzebowałem przypisać do zmiennej typu string scieżkę do podprogramu NC, blokiem MOVE to dając symulacje miałem pokazane klikając na bloczek, że wartość jest wpisana do zmiennej : 'C:\TwinCAT\CNC\DyszaC.NC'....
Weź pod uwagę takie problemy: 1. zminimalizuj drgania styków przycisków (tzw. debouncing) programowo lub sprzętowo używając kondensatorów 2. przerwanie od enkodera wywołuj stanem FALLING lub RISING (Ty masz LOW co jest bardziej podatne na drgania przycisku zwieranego do masy) 3. zmienna globalna "time" użyta w przerwaniu powinna być typu volatile (Ty...
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(...)...
A nie prościej użyć break w pętli while który będzie wywoływany jeśli jakaś tam zmienna globalna się ustawi? Do tego przypominam że musi to być zmienna volatile.
Jeżeli w funkcji deklarujesz zmienną o takiej samej nazwie jak zmienna globalna, to automatycznie przysłaniasz widoczność tej zmiennej globalnej. W czym problem aby definicję wyrzucić w miejscu, w którym masz zmienną globalną? Możesz też użyć extern, ale to też wymusi definicję zmiennej razem z deklaracją. Lokalnie jeśli chcesz zainicjalizować wiele...
Witam!! Nie jestem najmocniejszy w bascomie,ale wydaje mi sie,ze niepotrzebnie dwa razy deklarujesz ta sama zmienna (DANA).Raz jako globalna zmienna na poczatku a drugi raz w procedurze.Mysle,ze o to Ci chodzi: Dim Dane As Byte , Granica_g As Byte , Zmienna As Byte Declare Sub Increment(dana As Byte , Granica_g As Byte) Zmienna = 10 Do Call...
Zmienna musi być typu globalnego. W przycisku przejścia do następnej strony zapisujesz stan przycisku do tej zmiennej, podczas powrotu do strony 0, odczytany stan ze zmiennej zapisujesz do przycisku. Musisz to umieścić w zakładce Preinitialize strony 0. Pozdr
Pewnie bledow masz wiele, ale zacznijmy od poczatku: dtostrf(tem, 1,0,buffer_n);// Konwersja liczby double do asci return buffer_n; //funkcja zwraca buffer_n czyli wartosc cisnia w kodzie ASCI dtostrf nie sprawdza dlugosci bufora, ktory u ciebie wynosi 5 bajtow, w tym musisz miec miejsce na znak konca strungu. Czyli 4 bajty zostaja, konwertujesz...
Jeśli jednak w przerwaniu zmienna będzie modyfikowana, to jeśli wystąpi przerwanie pomiędzy krokami, zmienna będzie miała nieprawidłową wartość. W tym wypadku to jest oczywiste. Rozważany był jednak kod Autora, gdzie w przerwaniu zmienna globalna (typu uint8_t) nie jest modyfikowana, a jedynie czytana jest jej wartość.
faktycznie z tym adresem sumy kontrolnej to moja wtopa - po zmianie na zmienna globalna dziala. 4\/3!!
Efekt jest nieciekawy bo zamiast na porcie szeregowym operujesz na deskryptorze numer 0 :) Zmienna lokalna fd przysłania Ci zmienną globalną o tej samej nazwie.
Witam Nie wiem po co ci ta pętla od 1 do 5? Ustaw zdj jako zmienna globalna i pobierzesz od razu scieżkę
Jaki duży masz stos i gdzie umieszczony? Czy tą tablicę modyfikujesz w innej części programu? Czy to zmienna globalna, czy automatyczna? Albert
Ok, mam juz zliczanie ilosci i ich wyswietlanie. Teraz chcialbym pojsc dalej. Zastosowac drugi wyswietlacz podpiety pod tego procesora gdzie bylby wyswietlany wynik mnozenia ilosci zliczonych wcisniec przycisku razy jakas okreslona wartosc. Czyli program musi pobierac z przerwania wartosc "wskaznik". Wystarczy ustawic wksanzik jako globalna zmienna...
... co do resetu to : Reset zeruje tylko zmienna globalna a zmienna lokalna pozostaje nie ruszona :) Ze tez tego nie moglem sie nigdzie doczytac... Przestrzeń w pamięci RAM na zmienne lokalne , jest przydzielana dynamicznie i dla tego nie są one zerowane , bo w czasie kompilacji ich położenie(adres w pamięci) nie jest znane. Bascom również nie zeruje...
Niestety...niepomogło, deklaracja jako zmienna globalna niemiała żadnego wpływu na program. Poprostu nie chce działać...pomysły się mnie też kończą.
W porządku, ale gdybym zainicjował ją wartością 0, to nie zliczałby także, bo przy każdym wejściu do procedury zmienna byłaby zerowana (inicjowana zerem) tak? Dlatego najlepszym rozwiązaniem byłaby zmienna globalna? Jeszcze dziwniejszy jest fakt, że założyłem tą zmienna jako Integer (teoretycznie -32768 + 32767), a tu ponad 4 miliony.
Ok siedziałem całą noc i napisałem to wszystko o czym tu pisaliśmy, ale mam problem. Wykorzystuję polling i program nigdzie mi się nie zatrzymuje, ale teraz nie wiem jak przekazać informację o komendzie do wysłania. Program po uruchomieniu modułu, w pętli sprawdza czy jest komenda do wysłania i jest w tym stanie cały czas. Jeżeli w innym procesie wyniknie,...
Po naciśniętym przycisku zacznij pętle for(), a w niej na naciśnięty przycisk zastosuj "break" manipulując jednocześnie warunki jakąś zmienna globalną. Jutro napiszę ci przykłd... e marcus
Flaga jest ustawiona jako zmienna globalna. Poniżej zamieszczam kod (w tej chwili w sumie nic juz w nim nie ma - elementarna sprawa - włączenie buzzera).
Nie zrozumiałem twojego pytania. Zmienne globalne - ich inicjalizacje muszą być stałe Tak samo nie możesz zrobić globalnie: int a = 5; int b = a /2; jezeli b jest globalna. Może to zadziałać jak kompilator wyoptymalizuje a/2. Ale chodzi o zasade - zmienna globalna inicjalizowana jest stała.
dzięki za wszystkie odpowiedzi, co do zużycia energii to właściwie nie będzie to miało znaczenia, jest to projekt raczej akademicki(czyli ma tylko działać), dziś zabieram się do pracy => czyt. montuje układ i pisze program i teraz jeszcze pytania apropo programu, jak wiadomo dokumentacja jest duża i nie za bardzo wiem jak zacząć i co wykorzystać wymyśliłem...
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...
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
Efekt ten sam tablica ma większy wymiar w czasie działania... Tablica nie jest zmienna globalną.. A czy tablica uwzględnia znak zakończenia łańcucha '\0'? Bo jak nie, to może mieć bardzo dużą długość ten string ;)
Wskazany w linku debugger to zapewne JLink ale za cenę niespełna 10 $ to napewno nielegalny klon :) Jeżeli chcesz poznać LPC'ki i mieć debugger to wejściami . Kiedyś zapomniałem o tym fakcie i dziwiłem się dlaczego program nie działa tak jakbym się tego spodziewał.
nie trzeba robić sztuk ze zmiennymi globalnymi ? Jakich to sztuczek? Normalna zmienna globalna, bo i funkcja wykorzystywana przez większość innych. A kod jak kod, można tak i na 100 innych sposobów:) Ale sposób ciekawy. Rozdzielczość staram się mieć dużą nie dla akurat takiej sytuacji z błędem +-1 (to niejako przy okazji, jeżeli kod podobny jak powyżej),...
Jeśli zmienna jest dekalrowana jako zmienna globalna tak jak w tym przypadku licznik i liczt0 to każda funkcja a więc także przerwanie "widzi" ją i ma do niej dostęp... P.S. Dlaczego używasz typu char jako licznika...?.?.?
inicjalizuj zmienne, tak jak napisał Tobie skynet. Ponieważ jest to zmienna statyczna, inicjalizacja nastąpi tylko raz w startupie (kod wykonywany przed main). Wygląda to bardzo podobnie, jak by to była zmienna globalna, tylko że sam kompilator ogranicza jej widoczność.
Nie wiem czy dobrze się rozumiemy, skrypt linkiera umieszcze dane w pamięci DCTMRAM której nie obsługuje DMA1. Więc za pomocą makra [syntax=c]#define SRAM_D1 __attribute__((section(".sram_d1")))[/sy... Utworzyłem zmienna globalną UART_TxBuf którą zainicjalizowałem napisem STM32H7 UART, lecz zmienna zawiera jakieś przypadkowe wartości. Dopiero w dalszej...
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".
Znowu nie dziala:P Widzialem myk ze ktos wszystkie sekcje alignowal do 8 ale to chyba tez nie zalatwia sprawy na zawsze a tylko jesli zastosuje sie tego floata jako zmienna globalna.
poza funkcja - zmienna globalną
Pisze licznik MODX, gdzie X jest wybierany w jezyku VHDL i mam pewien problem. Nie wiem jak zadeklarowac zmienna globalna. Chodzi o to, ze potrzebuje przy pomocy instrukcji SELECT ustawic zmienna w zaleznosci od stanow wejsciowych, a nastepnie wykorzystac ja w PROCESS. Ponizej przedstawiam moj kod: -- PODPIECIE BIBLIOTEK library IEEE; use IEEE.std_logic_1164.all;...
Jednak wygląda tak, jakby zmienna statyczna nie była statyczna, ponieważ po każdym naciśnięciu klawisza, zwraca tę samą wartość. To bardzo dobrze. Lokalna zmienna statyczna w funkcji może być tylko raz inicjowana i tak naprawdę jest zmienną globalną, "widzianą" tylko z wewnątrz funkcji, gdzie została zadeklarowana. Jak chcesz zmieniać jej wartość,...
zmienna globalna stm32 zmienna globalna klawiatura globalna
agregat prądotwórczy spawarka honda centralny zamek sygnalizacja odpowietrzanie kół
odbiornik reakcyjny odbiornik reakcyjny
Demuda KDY 60A – aplikacja Android, BLE, konfiguracja PWM, monitoring regulatora solarnego Zanikanie sygnału zakończenia prania w pralkach Bosch, Samsung, LG – diagnostyka brzęczyka i ustawień