Chodzi mi o wyzwalanie konwersji ADC w przerwaniu - można do tego użyć timera bez przerwań ;) No i te wszystkie externy można by przenieść nad funkcję obsługi przerwania.
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 ;)
Możesz spróbować mniej więcej tak: // deklaracja zmiennych globalnych volatile uint8_t prev_tcnt, T; // w funkcji 'main' // skonfiguruj przerwanie INT0 tak, by reagowało na obydwa zbocza MCUCR |= (1<<ISC00); // używaj raczej makra ISR ISR(INT0_vect) { // sprawdzasz które zbocze wywołało przerwanie // jeżeli zbocze narastające,...
Do tego w kazdym pliku w ktorym nie jest zadeklarowana "normalnie" a chcesz jej tam uzyc musisz dodac extern przed deklaracja.
[syntax=c]string imie; int a; void miasto(); // int miasto; // błąd był tu int klasa; int sil;[/syntax] Masz w kodzie okropny bajzel. 1. Nie używaj zmiennych globalnych (właśnie już wiesz czemu). 2. Jeżeli chcesz zastosować metodę Kopiego Pejsta - to znaczy że robisz coś źle. 3. Przeanalizuj ten kod: [syntax=c]#include <stdio.h> typedef struct...
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...
pewnie dlatego ze: 1. przerwania nie zwracaja zadnych wartosci - int obsluga_przerwania1() jest bledne 2. poczytaj co to jest volatile sprawa zmiennych volatile byla poruszana jakies tryliard razy. calkowicie podstawowa sprawa, o ktorej pisze w kazdej ksiazce i kazdym kursie, jest deklaracja globalnych zmiennych modyfikowanych w przerwaniu i uzywanych...
Kawałek kodu : #include <avr/io.h> #include <avr/interrupt.h> // funkcje obsługujące przerwania #include "lcd.h" // funkcje obsługujące wyświetlacz LCD // #define DDR_Out DDRB // konfiguracja portu i pinu wyjścia #define PORT_Out PORTB #define Out PB0 #define clr_out bit_set(PORT_Out, bit(Out)) // operacje na pin-u...
Witam. Mam takie problem. Chcę sobie poćwiczyć zrobienie tzw bramy świetlnej na mikro, z wykorzystaniem INT1 i INT0. Bramy są zewnętrznymi urządzeniami, na nózki Atmegi podaję tylko sygnały logicznej 1 lub 0. Mam taką sytuację: - przerywam bieg pierwszej bramy, zostaje zliczona osoba - jednoczesnie zostaje wylaczone przerwanie drugiego czujnika, na...
Niejasny jest dla mnie ten zapis: [syntax=pascal]rek[i].ile_rec:=ile_rec;[... Jakie ma on zadanie? Chciałem stworzyć procedurę wypisz, ale nie działała tak samo jak procedura zapisz. Z tego wnioskowałem, że do tablicy nie są zapisywane żadne dane, albo tablica jest błędnie zadeklarowana. O usuwaniu na razie nie myślałem. Najpierw chcę zrobić działający...
Aro_ - bardziej przychyliłbym się do wytłumaczenia tego które podał Freddie Chopin - niż to co ty tu wypisujesz: Jeżeli masz ustawioną opcję optymalizacji na Os, a nie chcesz, aby kompilator usunął jakąś zmienną, wystarczy zadeklarować ją jako volatile . Np. w twoim przypadku volatile unsigned char Licz; Jest to informacja dla kompilatora aby nie optymalizował...
Witaski Panowie i Panie :) Wiele szukałem, niestety bez skutku prostego programiku, który to sprawdziłby, czy SPI w mojej ATmedze jest sprawne. Tak więc zamieszczam dwa proste programiki, które sprawdzają poprawność działania SPI Test SPI sprzętowego Test SPI programowego http://obrazki.elektroda.pl/4200324500_1... Przy sprzętowym podłącz...
No tak, to co ustawione jest na potencjometrze przez uruchomieniem symulacji, po włączeniu jej jest wyświetlane na LCD. Sygnał podany na wejście OSC1/CLKIN ma wartość 1MHz (Taka sama wartość ustawiona w kompilatorze microC). [syntax=c] // Deklaracja portow wyswietlacza LCD sbit LCD_RS at RB5_bit; sbit LCD_EN at RB6_bit; sbit LCD_D4 at RB1_bit; sbit...
Witajcie, mam problem nad którym siedzę juz kilka dni i zatrzymałem się nie wiedząc gdzie tkwi problem. Otóż chcę obsługiwać zegar RTC PCF8563 po I2C - czytać i zapisywać z niego dane (datę i czas). Projekt mam podzielony na kilka plików, całość pisana w Code Blocks 10.5 i kompilowana w AVR GCC. Mam zdefiniowaną strukturę do zapisu danych z zegara do...
Witam. Jestem początkującym programistą w WinApi i mam takie pytanie. Piszę kalkulator oprogramowałem przyciski, ale mam taki problem, że nie wiem jak pobrać tekst z pola tekstowego(cyfry/liczby) i zamienić je na jakiś INT , aby wykonywać działania.. Jeśli ktoś byłby tak miły i mi pomógł będę bardzo wdzięczny!:) zamieszczam kod: #include <windows.h>...
Zmiana deklaracji zmiennej na globalna pomogla. Jak sprawic, aby po kliknieciu w button stal się on nieaktywny, niezdolny do klikniecia w niego? Sprawdź czy zadziała EnableWindow jeśli podasz uchwyt do przycisku.
Czyli void(* resetFunc) (void) = 0; wstawiam przed funkcją setup(), a resetFunc(); mogę wywołać np z przerwania? Tak, wywołać na końcu obsługi przerwania. Wykonywanie głównej pętli programu" i jego resetowanie chyba nie jest podstawowym zadaniem urządzenie które budujesz? Spróbuj przedstawić algorytm który ułożyłeś, może komuś uda się rozwiązać problemy...
Co należałoby poprawić, aby móc wyeliminować ten błąd, uruchomić program i wygenerować plik? Utworzyć plik o nazwie np. main.h , w którym znajdzie się deklaracja funkcji getPlik (): main.cpp dopisać definicję tej funkcji i przenieść deklarację zmiennej globalnej plik do jej wnętrza: plik , użyć funkcji getPlik () np.: Dodano po 4 A sugestia, że w plikach...
Deklaracje zmiennych globalnych masz na samym początku programu, np. "DeviceAddress insideThermometer;" jest deklaracją zmiennej globalnej. Niemniej w pętli musisz odczytywać temperaturę i wynik przypisywać do tej zmiennej, zanim z czymś ją porównasz. Od strony elektronicznej - zazwyczaj wyjścia są aktywne stanem niskim, nie wysokim.
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ł.
Na początek to Ci się pewnie przyda (matlab, wczytanie i downmix pliku): % ----------------------------------------... function Open_Callback(hObject, eventdata, handles) % hObject handle to Open (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and...
Definicja a deklaracja: http://www.ithelpdesk.pl/kurs-c++/poziom...
Czesc Nie wiem czy dobrze zrozumialem o co chodzi ale aby sie to wyswietliło potrzebna jest jeszcze linijka: UpdateData(false); A jesli dane masz w dwoch formach to nie zapominaj o zmiennych globalnych i o deklaracji drugiej formy.
Czy to jest złapanie samego statusu po słowie "unreachable" Tak. gateway-status To wiadomo :) ~ binary operator that matches value against POSIX extended regular expression reszta https://regexr.com/8a68d W mikrotiku dolara jako zakończenie wyrażenia trzeba eskejpować. Dodano po 3 Zastanawia mnie jeszcze to czy jak będzie inna przyczyna "nieosiągalności"...
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).
...Czy deklaracja zmiennych k,m,aux przed programem głównym zaraz po deklaracji zmiennej counter1 zmieni coś dla funkcji matematycznych które używają tych zmiennych? No zmienne z lokalnych staną się zmiennymi globalnymi (czyli ich wartość będzie przechowywana od przerwania do przerwania). Dla funkcji mamtematycznych raczej nic się nie zmieni (obsługa...
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ść,...
Słowo kluczowe extern się stosuje wyłącznie do zmiennych które są zdefiniowane W INNYM MODULE tzn, będą połączone dopiero na etapie linkowania a nie na etapie kompilacji. Czytaj są w zupełnie innym pliku źródłowym. Pliki nagłówkowe (.h) możliwość zapowiedź zadeklarowania danej struktury zanim ona zostanie zdefiniowana w danym module (deklaracja wyprzedzająca)...
Pewnie dlatego że masz deklarację zmiennych a, b, c jako lokalne. Albo zadeklaruj zmienne jako globalne, albo przekazuj je z funkcji main() do funkcji pierwiastki() podczas wywołania funkcji pierwiastki(). Myślę, że w tym jest błąd.
Dzięki. Mam jeszcze takie zastrzeżenia definicja każdej funkcji powinna znajdować się w osobnym pliku *.cpp, 2. plik nagłówkowy stdafx.h (w Visual Studio) powinien zawierać deklaracje występujących funkcji, przestrzenie nazw, deklaracje zmiennych globalnych, włączenie bibliotek, W jaki sposób podzielić ten kod? Można w ogóle?
Ja zerknąłem szybko na kod i mam dla Ciebie rady: 1) Zamień wielokrotne ify na switch 2) Staraj się nie umieszczać deklaracji zmiennych globalnych w pliku nagłówkowym. 3) Sprawdź najpierw działanie programu w symulatorze.
No przecież to robisz. [syntax=cpp] HWND hMapi = CreateWindowEx(0, "STATIC",NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, 5, 80, 150, 200, hwnd, NULL, NULL, NULL);[/syntax]To nic innego jak zdefiniowanie zmiennej hMapi i przypisanie jej wartości wyniku funkcji. Możesz ją zadeklarować jako globalną (wtedy definicja i deklaracja muszą być oddzielone)
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...
Można i tak ją zadeklarowałeś na początku: [syntax=c]volatile float temp;[/syntax] Swoją drogą przy takiej deklaracji zmiennej globalnej na początku programu i nie używaniu jej w przerwaniach, modyfikator volatile jest zbędny. Specyfiki Arduino nie znam niestety. Nie odpowiedziałeś na moją uwagę dot. pętli głównej i main().
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*...
ktory z AS uzywasz? 4.0? czy wyzszy? a moze 3.9? Jak poasz to bedzie mi latwiej cos powiedziec Ogolnie rzecz ujmujac: Raczej jest błąd w deklaracji zmiennych globalnych albo lokalnych *.var, musisz otwozyc plik z tymi deklaracjami i w kolumnie value wykasuj najlepiej wszystko jesli nie korzystasz z inicjalizacyjnych wartosci. Te same mozna wpisac w...
Raczej doczytał, bo wstawił przed deklaracjami zmiennych, a jeśli rozwiązaniem jest wstawienie volatile też wewnątrz struktury, to raczej nie jest to oczywiste bez doświadczenia z C.
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 (avr)...
Witam. Gdy dzielę program na części, tworzę (oprócz pliku main.c) nowy plik x.c i x.h. Pewne funkcje i zmienne występujące w pliku x.c, które chcę udostępnić w innych plikach (np. w main.c), deklaruję w pliku x.h. Dzięki temu mogę z nich później korzystać. Jak należy postąpić, gdy chcę udostępnić zmienną lub funkcję z pliku main.c do innego pliku *.c?...
Nie ma żadnej potrzeby aby Twój obiekt był volatile. Edit: Powinieneś się zaznajomić z tym __dlaczego__ zmienne/obiekty deklaruje się z atrybutem volatile. Bardzo często słowo kluczowe na v jest nadużywane. W szczególności na tym forum.
Czyli PORTD &=!(1<<3); aby dioda gasła. Jak powinna wyglądać deklaracja tych zmiennych jako globalne?
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, Spotkałem się z bardzo dziwną sytuacją. Mianowicie, podczas deklaracji globalnej zmiennej tablicowej program nie działa. [syntax=c] char * Tablica[2]; int main( void) { } [/syntax] Jeśli w programie występuję deklaracja tak jak powyżej program zamiast wskoczyć do funkcji main() przerywany jest i obsługuje go przerwanie: NMI_Handler Jaki może...
Zrób z deklaracji stałej SECOND zmienną globalną i wtedy będziesz mógł sobie regulować. :)
Kiedy kliknę dwa razy na timer to wtedy mam procedurę ontimer? Dokładnie tak. Jeśli chce przypisać do licznika:=licznik +1 to wyskakuje błąd kompilacji Left side cannot be assigned to. Czyli że nie można stałej przypisać jakaś wartośći? Jeśli masz czas wyjaśnij mi trochę bardziej jak dla laika;p To zależy od ustawień kompilatora. Jeżeli wyskakuje w...
(at)khoam chodziło mi o zasięg, czy jak przeniosę definicje do innego pliku .h lub wsadzę do środka obiektu, to gdzie je będzie widać? Na razie mam deklaracje jak zmienną globalną i widać je wszędzie. pewnie sobie poeksperymentuje, dzięki! (at)jarekcz napisałem że enumy wyglądają na lepsze rozwiązanie, więc właściwie w czym problem? Jak masz jakieś...
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...
Na sam początek to trzeba by było sobie poczytać co to jest definicja funkcji a co to jest deklaracja - bo to są dwie różne rzeczy, a po opisach które widać w tych przedstawionych plikach widać, że kolega miesza pojęcia a to właśnie m.in się mści przy prawidłowym includowaniu plików. Zasada jest taka, że jeśli zrobiłeś sobie np plik z funkcjami do 1wire...
Witaj zadeklaruj zmienne jako globalne, ewentualnie przed deklaracją zmiennych dopisz 'volatile' to zadziała. Przypuszczam że kompilator zmienną i przyporządkował do jakiegoś rejestru przez co nie jest odpowiednio widziana przez debugger/symulator powodzenia
Wersja w moim poprzednim załączniku, była skompilowana pod windowsem. Kompilacja pod linuxem, daje taki sam wynik jak załączony przez Ciebie, jednak niezależnie czy program (pod linuxem) kompilowany jest z za komentowaną/nie za komentowaną zmienna volatile, to niestety nie działa. Pytanie, czy u Ciebie na uC ten program działa poprawnie? Jako poprawne...
deklaracja zmiennych modyfikowanie zmiennych globalnych delphi deklaracja zmiennych
karta pamięci uszkodzona zmywarka pompa ciepła siemens wyłączona kamera
piekarnik pyrolizą tester rezonatorów kwarcowych
Schemat zasilacza Delta EADP-152CF do Lexmark X544 – pinout, napięcia, naprawa Zasilacz – przeliczanie 1A na waty dla różnych napięć i typów zasilania