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 ;)
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ł.
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).
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*...
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ą.
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
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 może być globalna, czyli deklaracja przed void setup(). Reszta w pętli loop()...
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;
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;...
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?...
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ą ;)
dobra uporałem się z jednym problemem, trzeba było ustawić tablicę c globalną. Już tak robiłem ale miałem jeszcze inny błąd. Chyba chodzi o ustawienia stosów w linkerze? Czyli teraz moje przerwanie wygląda tak: void TIM1_CC_IRQHandler(void) { if (TIM_GetITStatus(TIM1, TIM_IT_CC1) != RESET) { ADC_ExternalTrigConvCmd(ADC1,...
cały kod zajmuje straszenie dużo... jak dam deklarację *bufor wewnątrz przerywania to program działa (wniosek -> jak zmienna jest globalna to ma problem z dostępem do niej)... stąd moje pytanie co z tym fantem zrobić... wiem że deklaracja w stylu: volatile unsigned char *bufor; odpada
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...
Czy wystarczy utworzyć sekcję w taki sposób, powtarzając ten wpis dla każdej sekcji, czyli d1sramdata, d2sramdata, d3sramdata? Nie. Albo inaczej. Sekcje zostaną utworzone i jeśli przypiszesz do nich jakieś zmienne, to one tam wylądują, ale aby dane zostały zainicjalizowane domyślnymi wartościami (a'la sekcja .data) lub wyzerowane (a'la sekcja .bss),...
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...
Do drasmen: jeżeli chcesz aby układ zadziałał musisz przestawić fuse bity na wew. generator np. 8MHz a do pinów gdzie podłączasz kwarc musisz wpiąć kwarc zegarkowy 32.768kHz. Program dla autora tematu: 'Program wykorzystujący przerwanie od timera0(8 bitowego) generowane co 8ms 'jeżeli przerwanie zostanie wywołane 125 razy, otrzymamy 1 sekundę...
nieulotna to volatile ... Jesteś pewien, że "nieulotna"? oczywiście, że ulotna - mój czeski błąd - słuszna twoja uwaga Dodano po 10 volatile - obojętnie gdzie to tylko wskazówka dla kompilatora, aby nie optymalizować no pewnie, że masz rację że można dać obojętnie gdzie słówko volatile jeśli chodzi o zmienną - tylko nie mów, że wszędzie je dajesz?...
Witam , mam drobny problem z zamykaniem portu poprzez funkcje Closehandle(HANDLE var) Generalnie napisałem program, który posiada osobne funkcje do inicjalizacji portu i osobna do zamykania. Problem polega na tym, że nie wiem za bardzo jak w funkcji zamykającej dobrać się do ustawień portu (hCom) Chodzi o to, że zmienna HANDLE hCom jest niezainicjowana....
Dla timer 8it bez błędu odliczania można zastosować preskaler 64 i następującą procedurę obsługi ( kod w C ) [syntax=c] volatile uint8_t flaga // deklaracja jako zmienna globalna i pooling zmiennej w pętli głównej uint8_t main( void ){ flaga = 0 while(1){ if(flaga == 1){ flaga = 0 // dalej funkcje wykonywane co 1s } } } ISR(TIMER0_OVF_vect) { static...
Jeśli pragniesz posłużyć się zmienną globalną widzianą w innych modułach możesz to zrobić na przykład tak: 1) z menu "Project" wybierz opcję "View Source" - w nowej zakładce pojawi się kod źródłowy modułu zawierającego główną funkcję WinMain 2) w w/w pliku zdefiniuj swoją zmienną jako zwykłą zmienną globalną np.: int zmienna; 3) utwórz oddzielny plik...
Chyba nie ogarniasz tworzenia nowego okna ;] Dodałeś deklarację na początku pliku - ok. Dodałeś rejestrację klasy MyRegisterClass - ok. Powiedz mi dlaczego w WndProc masz [syntax=cpp]HWND hRysuj, noweOkno; //?? dlaczego one nie są jako globalne ? po stworzeniu buttona już nigdy nie obsłuzysz jego naciśnięcia bo uchwyt zostanie zapomniany do przycisku...
Może być wiele przyczyn takiego zachowania. Wymienię kilka, które mi przyszły na myśl: 1. Zainicjuj zmienną globalną - nie mozna zakładać, ze deklaracja zmiennej (szczególnie globalnej) zeruje ją (zależy od kompilatora) 2. Transmisja szeregowa działa poprawnie? Może DATACNT ma poprawna wartość ale rózne ustawienie parametrów transmisji w nadajniku...
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...
Czy ta procedura jest poprawnie napisana ? Napisana jest poprawnie, jeżeli masz na myśli otwarcie pliku, do którego ścieżkę podasz. Nic poza tym się nie stanie. No i deklaracja tej zmiennej 'plik' rozumiem, że jest gdzieś wcześniej umieszczona, jako zmienna globalna?
Dziękuję bardzo. Wyświetlanie zmiennej w okienku informacyjnym (MessageBox) mnie zmyliło. Po podstawieniu wartości do zmiennej Sc w bloku WM_COMMAND następuje wyjście z funkcji i ponowne wejście, żeby wykonać blok WM_PAINT na skutek wywołania UpdateWindow. Wszystkie zmienne są inicjowane od nowa zgodnie z deklaracją od początku funkcji. Teraz już chyba...
W funkcji f Nie mam pojęcia po co ta zmienna statyczna. Wystarczy inkrementować zmienną globalną. Chyba, że jako zabezpieczenie żeby nie zmieniać zmiennej globalnej, ale i to średnio skuteczne. Można też przekazać dodatkowy parametr, wskaźnik do zmiennej, która będzie przechowywać ilość wykonań funkcji. przy zakresie a=6 b=10 wychodzi 257 wywołań funkcji,...
Tak jakbym coś z przyciskiem chrzanił, a próbuje na wszelkie sposoby. A jak według Ciebie to działa? Na początku funkcji loop ustawiasz wartości początkowe wszystkich zmiennych, potem niektóre zmieniasz zależnie od warunków ale jak funkcja loop() jest wywoływana ponownie to zmienne są od nowa inicjowane (w większości zerowane). Te zmienne które musza...
Noo, jak by to powiedzieć... napisałem ;) Kliknij prawym klawiszem w zakładkę arkusza i wybierz 'Wyświetl kod' Znajdziesz tam procedurę zdarzeniową arkusza. Z prawej u góry jest lista wszystkich dostępnych procedur. Wybierz sobie którąś i pokombinuj. Do niemal wszystkich, jak można zauważyć, przekazywany jest argument 'Target'. To zmienna obiektowa...
Witam Jestem młodym elektronikiem. I nie potrafię wykorzystać mojej pamięci eeprom. Piszę w Bascomie. Mam polską wersję, helpu z Bascoma, ale tej nie rozumie. Skoro nie rozumiesz po polsku ;) , to w jakim języku mam Ci to wytłumaczyć :?: Spróbuję jednak po ... polsku ;) Oto próbka kodu, który mi nie działa. $lib "mcsbyte.lbx" $regfile = "2313def.dat"...
Myślę jednak, że zasada związana z alokacją zmiennych w pamięci SRAM (zgodnie z ich typem i/lub kolejnością w deklaracjach) jest przestrzegana. Żebyś się nie zdziwił. W końcu GCC z jakiegoś powodu ma parametr "-fno-toplevel-reorder".
Marico: wszystkie zmienne globalne w C są również statyczne. Atrybut static użyty w deklaracji na poziomie zewnętrznym oznacza zmienną statyczną prywatną dla danego modułu, brak tego atrybutu - zmienną statyczną globalną. Nazwa tego atrybutu - to zaszłość. Powinien on się nazywać private. Zmienna lub funkcja używana w jednym tylko module powinna być...
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...
Wydaje mi się, że nie ma sensu rysować schematu, ponieważ tak jak mówiłem - podłączyłem impulsator bezpośrednio pod nóżki uC. Wyprowadzenia mikroprocesora impulsatora bezpośrednio, czyli bez żadnych rezystorów szeregowych, pull-down, pull-up, podłączyłem pod wejścia PD2 oraz PD3. Dodano po 4 Może spróbuj vollatile. No bo teraz dystans to jest chyba...
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...
Witam, Mam mały problem z napisaniem kodu tak aby ten program uruchamiał się za pomocą przycisku [syntax=basic4gl]Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer , Prescale = 256 'deklaracja timera jako czasomierza On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik...
Wszystko ok. tylko po co w module (bo rozumiem, że to moduł skoro robisz plik nagłówkowy) statyczna zmienna globalna, bo rozumiem funkcje, definicje typów/klas... Podany sposób inicjalizacji tablicy jest możliwy tylko w momencie jej deklaracji, spróbuj tak: 1.h: int [5]; 1.cpp: int a[5]={1, 2, 3, 4, 5};
Config Timer0 = Timer , Prescale = 64 On Timer0 Odmierz_1s 'podprogram wykonywany podczas wystapienia przerwania Dim Licz_8ms As Byte 'deklaracja zmiennej Enable Interrupts 'aktywacja globalnego systemu przerwan Enable Timer0 'aktywacja timera0 Counter0 = 131 'wpisanie wartosci początkowej do timera0 Dim Sek As Byte 'deklaracja zmienna zawierajaca...
W tej chwili program jest poprawny składniowo i działa, tzn. odczytuje 10 liczb, po czym oblicza i wyświetla sumę wszystkich oraz sumę tych, które są parzyste. Błędy: 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...
Extern informuje że zmienna jest zmienna globalną i występuje gdzieś w projekcie. Przykład: plik_a.c Inny sposób użycia: plik_a.c plik_a.h Jeszcze inny przypadek: Żeby sobie nie zaśmiecać plików źródłowych np. gdy potrzebujesz dostępu do zmiennej tylko w jednej funkcji w innym pliku: plik_a.c void jakas_inna_funkcja(void)
Twój kod niewiele mówi. Podajesz za mało danych. Nie wiadomo np.: Czy byte to zmienna globalna (można się tego ewentualnie domyślić) i czy jest zadeklarowana jako volatile (to trudno przewidzieć)? Czy warunek if (odebr_zn=='1') sprawdzasz w przerwaniu, czy w pętli głównej? Czemu ma służyć deklaracja unsigned char i=0; ? Co to za funkcje (makra?) RS485_INIT();...
Problemem jest to, że zmienna temp jest niedostępna. No bo zmienna temp istnije tylko w przerwaniu, poza przerwaniem jest niedostępna, co innego jakby była zadeklarowana jako globalna (a nic nie stoi na przeszkodzie żeby tak zrobić i zadeklarować ją zaraz za deklaracją zmiennej counter1).
/ip route print count-only where comment="Sciezka trzecia" and gateway-status~"^(.*unreachable.*)\$" :) Sprytne. Czy to jest złapanie samego statusu po słowie "unreachable" czy jednak jakiegoś jego wewnętrznego stanu"? (zastanawia mnie też jaka jest funkcja ostatniej kropki po "unreachable", bo bez pierwszej kropki nie działa a drugiej może nie byc...
Ja praktycznie w ogóle nie znam .NETa, ale wydaje mi się, że globalne zadeklarowanie zmiennych w pliku dane.h w ogóle nie jest widoczne wewnątrz klasy okna (przykładowo x to prawdopodobnie jakaś własność obiektu okna, a nie zmienna z drugiego pliku). Zdecydowanie przeniósłbym albo te deklaracje do klasy okna, albo stworzył z pliku jednak klasę, którą...
Dodam tylko że użycie metody którą opisałem nie wymaga zmieniania tablicy w locie jak to zrobił Marek_Skalski . U mnie kod z przerwania wygląda tak: [syntax=c] Angle2 += Angle2_Step; Angle2_2 = Angle2 >> 6; U = (sinus_3har[(Angle2_2 + 0) & 0x03FF] * Vm * 2816) >> 20; V = (sinus_3har[(Angle2_2 + 341) & 0x03FF] * Vm * 2816) >>...
Przede wszystkim błąd jest w deklaracji zmiennej: char ilosc_adesow; Wnioskuje z programu, że zmienna "ilosc_adresow" powinna byc typu całkowitego. Błędy takie łatwo pękają po potraktowaniu debuggerem - polecam zapoznanie się. Warto również zadbać, aby wartość "ilosc_adresow" nigdy nie przekroczyła rozmiaru tablicy.
1. Bascom jest bardzo dobrym językiem, znacznie lepszym niż Arduino. 2. "a:10.0" "a:10.0 " ":10" "10 " Ten temat jest zamknięty, dostałeś 2 przykłady. Pierwszy napisałem do składni ramki jaką podałeś w pierwszym poście, później zmieniłeś konstrukcję rami to napisałem kolejny przykład, można jak dobrze naliczyłem jeszcze 9 innych metod zastosować by...
NIGDY nie inkludujesz nigdzie plikow C. w pliku naglowkowym danego modulu dodajesz po prostu deklaracje funkcji w postaci (na przyklad) int uart_init(void); pliki h dolaczasz do swoich modulow c tak, aby byly one autonomiczne. zmienne robisz globalne za posrednictwem 'extern' w pliku c jakiegos modulu deklarujesz wiec zmienna np: volatile int zmienna;...
kod wymaga optymalizacji typu Nie chodzi tu o optymalizację typu, ten typ w deklaracji zmiennej i powinien być podany chyba, że zmienna i jest zadeklarowana wcześniej jako globalna. użyłem funkcji freeRam() Powinieneś użyć getFreeMemory() zgodnie z przykładem zawartym w tej bibliotece. Pytanie gdzie szukać. No cóż dopóki nie udostępnisz całego kodu,...
globalny zmienna zmienna globalny deklaracja zmienna
krzywa pogodowy naprawi spawarka ładowarka sygnalizować uszkodzenie
kabel brake radio interfejs lexia
Mercedes Unimog 404 S 2.2 benzyna – naprawa pompki paliwa membranowej Pierburg/Solex Sony ICF-CL70 – konfiguracja, ustawienia, typowe usterki, multimedia, alarmy