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....
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 :) ).
statyczną możesz używać tylko w tej funkcji, czasami bezpieczniejsz abo nie zmienisz przypadkiem ;) globalną używasz wszędzie
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.
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;
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....
Probowales 'r' zadeklarowac jako zmienna globalna - ale bez inicjalizacji, wzglednie inicjalizujac jakas konkretna wartoscia stala, a w funkcji przypisac wartosc? Bo tak powinno dzialac.
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...
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...
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().
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...
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)
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
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
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)
komorka(i, 3).Value = suma i - to globalna zmienna? dodaj zalacznik
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...
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 |=...
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...
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
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]
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);...
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...
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źć)
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....
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.
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...
(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.
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'
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?
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...
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?...
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;)
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 ;)
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.
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;...
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
W tym celu zmienna "wiersz" powinien być zadeklarowany jako globalna. Wtedy Range("D" & wiersz) = kw1.Text
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(...)...
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.
To za ciosem jeszcze dorzućmy zbędne zmienne globalne. Która zmienna według Ciebie wymaga użycia "volatile"?
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...
Jeśli zadeklarujesz zmienną globalną (Public zmienna As typ) w module , będzie widoczna w całym projekcie...
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ą...
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ę...
Ł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?
basemodule.h typedef struct { uint8_t blockParam; uint8_t signedMove; uint32_t deviceInitialAdress; }glob; uint8_t returnBlockParam(void); basemodule.c volatile static glob globalVariables; uint8_t returnBlockParam(void) { uint8_t returningValue = globalVariables.blockParam; rprintf("Returning : %d",returningValue...
A gdzie tam jest jakaś zmienna globalna? Właśnie nie ma.
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'....
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ą ;)
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...
zmienna globalna i po prostu licz.
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;...
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...
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...
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
(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ę...
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 ?
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...
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...
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...
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.
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ść.
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...
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...
faktycznie z tym adresem sumy kontrolnej to moja wtopa - po zmianie na zmienna globalna dziala. 4\/3!!
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...
Jaki duży masz stos i gdzie umieszczony? Czy tą tablicę modyfikujesz w innej części programu? Czy to zmienna globalna, czy automatyczna? Albert
Witam Nie wiem po co ci ta pętla od 1 do 5? Ustaw zdj jako zmienna globalna i pobierzesz od razu scieżkę
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
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...
... 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...
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
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ą.
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,...
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.
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),...
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).
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 ;)
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...
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.
volatile mogę usunąć i dalej będzie kod działał, bo tak miałem. Program działa dokładnie tak samo. Ja Ci radzę, dopisz to volatile bo zaraz będzie kolejny post, że program nie widzi zmian wartości zmiennych. Każda zmienna globalna zmieniana w przerwaniu powinna być volatile, chyba, że jesteś pewien, że wykorzystujesz ją tylko w przerwaniu (a wtedy...
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...
poza funkcja - zmienna globalną
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ść,...
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...?.?.?
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...
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 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....
zmienna globalny stm32 zmienna globalny deklaracja zmienna globalny
ariston hotpoint pralka bezawaryjna pralka wymienne łożyska siemens gigaset zasilacz
płyta główna klimatyzator płyta główna klimatyzator
Kod PIN immobilisera Renault Megane I 1.4 16V VIN VF1KA0D0524225782 Robo 1000: Jak ominąć fotokomórki i ustawić piny?