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).
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ł.
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 ;)
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ą.
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*...
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
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;
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...
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?...
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ść,...
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ą ;)
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
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;...
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...
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...
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ę...
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...
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...
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...
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),...
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?...
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,...
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...
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".
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...
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....
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};
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ć...
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...
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...
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...
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...
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...
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)
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...
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ą...
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...
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,...
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"...
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,...
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();...
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...
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).
Witam, Właśnie miałem przypadek, kiedy program - do tej pory dobrze działający zaczął się dziwnie zachowywać - wieszać. Fragment, do tej pory działający, potem wykomentowany, teraz po odkomentowaniu - totalny zwis procka. Zacząłem szukać przyczyny - odsiewać fragmenty dobrze działające, od złych, aż udało mi się namierzyć winowajcę - jedną ze zmiennych....
/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...
Pozwolę sobie czepnąć się tego kodu, przynajmniej estetycznie: przekroczenie zakresu zmiennych w c to zdaje się zachowanie niezefiniowane? W związku z tym może się dla cnt bezboleśnie przekręcić licznik (tak jak chcemy tutaj) a może zacząć nadpisywać sąsiedni bajt - zależnie od kompilatora. Czy się mylę? No mylisz się. Jaki sąsiedni bajt? w zależności...
Czy to jest avr-gcc? Jakoś nie kojarzę zapisu interrupt SPDR = dana_spi[dana_i]; while(!(SPSR & (1<<SPIF))); dana_spi[dana_i] = SPDR; to wszystko może być w pętli. Nie wiem czy piszesz w avr-gcc, tak więc nie wiem czy obowiązują w innych językach takie słowa jak volatile i takie traktowanie zmiennych.
Z wielu detalicznych argumentów, choćby i ten, że C++ obiekt stream może istnieć, a nie być otwarty. Obiekt nie musi być od razy otwarty. Wystarczy, że będzie zainicjowany (przy pierwszym użyciu funkcji) i spełni swoje "zastępstwo" za zmienna globalną, i będzie dostępny przez referencję w innych plikach, co było celem tego ćwiczenia. Ja znam z pięć...
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...
Po ludzku czyli tak: 1. Zmienne/stałe są TYLKO I WYŁĄCZNIE w plikach źródłowych (*.c, *.cpp, itd.) 2. Jeśli chcesz aby zmienna była prywatna dla danego pliku jej definicję poprzedzasz słowem "static" - teraz każdy plik może mieć zmienne o takiej samej nazwie, ale nie będą się one nakładać, nie ma też możliwości udostępnienia ich "zewnętrznie" wg punktu...
No dobrze a jaką mają różnice powyższe programy. Bo jak dla mnie to dodana jest kolejna zmienna. Różnicy w działaniu nie zauważam żadnej - pomroczność czy jak :) I jeszcze jedno: Niestety pokazałeś zły kod - jak wpłynie na poprawność działania pokazanego przez Ciebie kodu: Ustawi indeks tablicy odebranych danych na początek, co tym samym dane będą nadpisywane....
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) >>...
... 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...
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.
Cześć Mam taki kod ale niewiem w czym lezy problem czy możecie mi pomóc [syntax=c] //Dołączenie plików bibliotecznych #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> //Deklaracja funkcji void initialization(void); //Powołanie zmiennych globalnych wykorzystywanych w przerwaniu volatile uint8_t licznik_1; volatile...
Witam, Mam pewien problem, nie potrafię sobie poradzić z odpowiednią deklaracją zmiennej w C++ tak, aby mieć do niej dostęp z każdej z klas. Np niech to będzie zmienna int x i chciałbym sprawdzać jej wartość, bądź ją zmieniać. Mam plik z funkcją main() i 3 pliki z klasami + 3 nagłówkowe. Będę wdzięczny za wskazówki.
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;...
Witam Was mam takie pytanie, być może wynika one z mojej niewiedzy. Mam program, który będzie odczytywał temperaturę , ponieważ czujników jest sztuk 4 to chciałem po 2 pomiary pokazać na LCD. Pierwszy pomysł jaki mi przyszedł do głowy to funkcja przełączająca i delay na 3-5 sekund. Niestety założenie było błędne, ponieważ w głównej pętli mam jeszcze...
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...
Przyłączę się do tematu, gdyż mój problem dotyczy zastosowania ujętej tutaj wiedzy. Mianowicie deklaruję sobie zmienną: unsigned char str[16][16][16] PROGMEM; przy czym: str Deklaracja występuje bezpośrednio po dyrektywach #include jest to zatem zmienna globalna. Dalej w funkcji defineStrs() definiuję sobie tą zmienną w następujący...
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...
Twój błąd jest spowodowany tym że w swoim pliku 'plik.h' zadeklarowałeś zmienną globalną. Kompilator kompiluje kazdy plik *.c osobno wiec nie zgłasza błędu, problem pojawia się dopiero przy linkowaniu - linker łączy wszystkie pliki pośrednie *.obj i natrafia na problem - w każdym zadeklarowales te same zmienne i powstaje konflikt. Zeby tak sie nie dzialo...
Oki, tyle ze to troche bez sensu, po co uzywa r18 jak ma używać r2. Wtedy zamist jednego zadeklarowanego r2, używa dwóch r2 i r18 w zależnosci od miejsca w programie. Co skutkuje niewłaściwym działeniem programu. I koniecznoscią pisania w inny sposób. Ja sie domyślam że w jakis przypadkach może to przynieść korzyść, tylko wydaje mi sie to dość drastyczne....
Szanowni koledzy czy ktoś z was może mi powiedzieć jaką mogę osiągnąć precyzję przy odmierzaniu czasu przy wykorzystaniu układu ATmega16 z zewnętrznym zegarem 8.000 MHZ(rezonator kwarcowy)? Morduje to już drugi dzień i nie mogę zrobić tego w sposób precyzyjny - na każde odmierzone 10 minut atmege spieszy o ok 20s - taka zwłoka jest dla mnie niedopuszczalna...
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...
Kolego tera nie działa mi ustawianie godzin a zrobiłem to tak deklaracja:[syntax=vbnet] Declare Function Ustaw(byref Godziny As Byte , Byref Minuty As Byte , Sekundy As Byte) As Integer Declare Sub Znak(cyfra As Byte) 'deklaracja tablicy stałej do wyświetlania cyfr i znaków na wyświetlaczu 7 seg Declare Sub Czytaj 'deklaracja funkcji bez parametru do...
Kolego, C to C niezależnie, czy na mikrokontrolery, czy na PC. Więc ponowię radę - kup książkę do nauki C i ją przeczytaj, zanim zaczniesz coś pisać. Z twojego opisu wynika, że robisz babol na babolu, w dodatku bez zrozumienia co i po co się stosuje. Może to brutalne, ale prawdziwe. AVR Studio używa avr-gcc (czyli WinAVR) do kompilacji projektów w C,...
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;...
Witam !! Napisałem program na sterowanie pilotem. Nie działa mi set Led_2. Przycisk 2 z pilota wykonuje warunek ale nie setuje portb.2 ? Co jest [syntax=c] $regfile = "m8def.dat" 'rejestry mikrokontrolera atmega8 $crystal = 8000000 'częstotliwość taktowania mikrokontrolera $baud = 9600 Config Portb = &B11111111 : Portb = &B00000000 'cały portB jako...
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...
Kolego dondu: deklaracja zmiennej licznik: unsigned long int licznik=0;//zmienna globalna licznik Fuse bity ustawione prawidłowo (temat wałkowany setki razy).Zegar definiowałem początkowo w ustawieniach konfiguracyjnych AVR Studio, później gdy zaczęły się problemy przez #define F_CPU. Do mirekk36: Timer sprzętowy działa bardzo dobrze i precyzyjnie....
To nie żaden problem z kompilatorem/debugerem tylko niestety problem ze zrozumieniem co i jak powinno działać. Po pierwsze nie wyłączaj żadnej optymalizacji bo po co??? Chyba, że tobisz ten program, żeby działał po wsze czasy tylko w symulatorze to wtedy możesz się bawić w takie tam. Analizując od góry, po co ci: volatile char jjj; tzn po co to volatile...
W Zmienne globalne — wiedz, kiedy są modyfikowane Zmienne globalne muszą być ostrożnie obsługiwane, gdy są używane z przerwaniami, ponieważ te są generalnie asynchroniczne. I jeżeli zmienna globalna jest modyfikowana przez ISR, może zostać zmieniona w dowolnym momencie. Musimy mieć na uwadze następujące aspekty: Odczyt/zapis zmiennych globalnych...
Po mojemu powinno być coś takiego. Sub ReadDataFromSheets() Dim colxls As New Collection Dim path As String, filtr As String, plik As String, i As Long Dim wynik As Long, SheetName As String Dim kom As Range, rg As Range Dim shAct As Worksheet, sh As Worksheet, wb As Workbook Dim p As Long path = ThisWorkbook.path & Application.PathSeparator...
$mod51 ;istotne dla kompilatora asm51 (at)(at)(at)(at)(at) ;przerwania t0 i t1 pre0 equ 30h ; deklaracje komórek zmienne "set" pre1 equ 31h ; deklaracje komórek zmienne "des" prex equ 32h ; deklaracje komórek zmienne "jed" ax equ 40h ; deklaracje komórek zmienne 7seg "jed" xx equ 42h ; deklaracje komórek zmienne 7seg "des" yy equ 44h ; deklaracje komórek...
Witam Należy stworzyć w drzewie projektu (prawy przycisk myszy na Logical POU's, Insert , Function Block) nową funkcję pisząc kod i deklarując zmienne należy zaznaczyć (właściwości Usage zmiennej) czy zmienna ma być lokalna (VAR) globalna (Var_External) wejściowa FB (VAR_INPUT) , wyjściowa (VAR_OUTPUT) , wejściowo-wyjściowa (VAR_IN_OUT) Po napisaniu...
Nie masz racji. Oczywiście można umieszczać kod otwierający port w dowolnej funkcji, a później wywoływać ją z dowolnego komponentu, ale trzeba to zrobić prawidłowo. Błąd kolegi polegał na tym że funkcja WriteFile(...) wywoływana była z argumentem hCommDev=NULL. Przyczyną tego była błędna deklaracja funkcji Open_Comm. Argumenty funkcji w C/C++ przekazywane...
Doszedłem już do rozwiązania, jeśli kogoś interesuje to zagadnienie, to idzie to tak: (przykład trochę łopatologiczny) ;assemblerowy moduł: .586 .model flat, stdcall .code public _A ;funkcja, którą wywołam spod Buildera extrn _k : WORD; builderowa zmienna w której będę grzebał _A proc mov _k, 100 ret _A endp end całość asembuję: tasm32 moduł_asm.asm...
Nie znam tego konkretnie przykładu, ale mogę doradzić jak zacząć zabawę z odpowiednim programem. Jeżeli udaje Ci się odczytywać w jakiejś pętli klawiaturę, to potrzebujesz przerobić tą pętle na funkcję, która wykonuje tylko jeden przebieg i zapamiętuje swój stan do następnego wywołania. W funkcji tu chodzi o nauczenie się zasady, żeby API modułów składało...
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...
Masz problem z tym, że włączasz nag1.h dwa razy w jednym pliku - kompilujesz p021.cpp, wczytujesz nag1.h, później wczytujesz p021a.cpp, który z kolei raz jeszcze wczytuje nag1.h - stąd zmienna globalna i jest definiowana dwukrotnie. Zwykle (choć z innych powodów) robi się to tak: /* plik.h */ #ifndef PLIK_H_INCLUDED #define PLIK_H_INCLUDED /* zawartosc...
..próbuje coś spłodzić korzystając z manuali ale szło bardzo opornie...no i utknąłem...chciałem najpierw odpalić LCD z "podstawionymi" wartościami danych 'volt' 'solar' 'aku' i dopiero potem zabrać się za ADC i gdybym miał już pomiar napięcia zdefiniować ustawienia progowe min/max i wypchnąć to na jakiś port poprzez MOC sterujący ładowarką...na ale...
Kod programu poniżej. Mam nadziej ze ktoś mi doradzi jak go poprawić problem jest miaowicie taki ze zmienna jest zliczana w przerwaniu i w zależności od zmienne jest uruchamiany odpowiedni „program”. Jak na początku programu zadeklaruję zmienna o jakiejś wartości to wchodzi w odpowiednia dla te wartości pętlę jeśli natomiast za pomocą przerwania...
podaj kod źródłowy w języku C na mikrokontroler PIC16, dekodujący sygnał DCF77. Założenia są takie, że przebieg z odbiornika DCF77 podawany jest na wejście przerwania zewnętrznego INT0 a program ma uzupełnić odpowiednią strukturę zawierającą pole daty i czasu z dokładnością co do sekundy. Program bez funkcji delay, ma działać jako maszyna stanów. Chętnie...
witam ponownie mam do was prosbe mam do napisania Zegarek w bascomie 8051 ni mam tu moj programik moze rzucilby ktos okiem czy nie ma bledow :wink: Dim Sekundy As Byte 'deklaracja zmiennej SSEKUNDY jako liczby z zakresu 0...255 Dim Minuty As Byte 'deklaracja zmiennej MINUTY jako liczby z zakresu 0...255 Dim Godziny As Byte 'deklaracja zmiennej GODZINY...
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...
A więc do zapamietania: BYVAL w deklaracji podajemy tylko 1 raz Nie. :) byval , a druga jako byref . Ty masz inny błąd, nazwy przekazywanych zmiennych w deklaracji funkcji są takie same jak nazwy zmiennych globalnych. I tak naprawdę w funkcji operujesz na zmiennych globalnych, a nie na zmiennych przekazanych przy wywołaniu funkcji. Zrób sobie test,...
Z zasady w plikach .h nie umieszcz się kodu, a jedynie deklaracje i makra. W pliku .h zadeklaruj zmienne globalne jako extern. Zrób dwa pliki .c, w obu zainclude'uj plik .h a w jednym z nich umiesc definicję zmiennej globalnej, ale już bez extern. W pliku .h powinny znaleźć się także prototypy funkcji, które mają być dostępne "z zewnątrz" Ogólnie wszystko...
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...
Co oznacz "static" przy dekalracji zmiennych np. static unsigned char zmienna=0; Jest cos takeigo np: #include <sfr51.h> void main () { //ustawienie parametrow przerwania od Timera 0 TMOD=0x01; TR0=1; ET0=1; IP=0x02; //najwyzszy priorytet dla przerwania od Timer'a 0 EA=1;//globalne odblokowanie systemu przerwan P0=0x00; P1=0x00; P2=0x00;...
Czyli ten fragment z konfiguracją i obsługą timera jak przekształcić? Oto fragment kodu: [syntax=basic4gl]Config Timer0 = Timer , Prescale = 256 'konfiguracja Timer0 jako 'timer z podziałem 'preskalera przez 256 Portc.0 = 1 Declare Sub Pobr_znaku(cyfra As Byte) 'deklaracja procedury 'pobierającej kod cyfry do 'wyświetlenia z tablicy On Timer0 Mult_wysw...
Ciekawi mnie czemu jak zadeklaruję zmienną "i" jako volatile globalnie to nie działa jej zerowanie po za przerwaniem- analogicznie jak miałem poprzednio? Zauważ, że zadeklarowałem "i" jako static, więc poza przerwaniem zmienna nie jest dostępna. Ale jak usuniesz deklarację z przerwania i dasz volatile char i; poza przerwaniem to powinno działać zerowanie....
Witam Was! Jako, że uczę się programować AVR'y w C, to napisałem sobie prosty program, który miga diodą. czas zwiększy się o 250 (oczywiście jeśli jest spełniony warunek czas < 1500 ) 2) Naciśniemy przycisk 2, to zmienna czas zmiejszy się o 250 (oczywiście jeśli jest spełniony warunek czas > 250 ) Wczoraj również pisałem takie proste programy....
zmieniłem wynik z milisekund na sekundy poprzez elapsedTIme = (millis() - startTime)/1000, jednakże "elapsedTime" nie wyświetla wyniku po przecinku a zaokrągla liczby. Jak sprawić by zmienna elapsedTIme wyświetlała liczby niecałkowite? Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Użytkownik zmienił wynik pomiaru...
pawel_konin -> podaj dokładny schemat (lub zdjęcie HD) i program którym to testujesz. [syntax=c] /* * GccApplication1.c * * Created: 2012-11-12 16:25:45 * Author: Pawel */ #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <util/atomic.h> #include <math.h> #define NOOFSAMPLES 128 // ilosc...
Witam. Mam problem z zegarem na wyświetlaczach 7-segmentowych. Minuty po 09 wyświetla 16 zamiast 10, sekundy tak samo. Zawsze tak się dzieje, więc musi to być błąd w programie, ale ja już się poddałem, co może być nie tak. Config PortA = Output PortA = &HFF Config Portd = Output Portd = &Hff Config Portb = Output config portc.0 = output config...
Witam, Trochę za późno zabrałem się za pisanie programu na zaliczenie. Temat mojego projektu to statystyki pliku , ile slow ile znakow ile linii i histogram. Ten program chce napisać sam, ale że na laborkach z programowania podczas wykłądania procedur i funkcji zagapiłem się i praktycznie nic nie wyniosłem z tych zajęć to mam teraz pewne problemy zrozumieć...
Poczytałem o EtherCAT. Nadrabiam zaległości ;) Mam mnóstwo pytań o obsługę systemu TwinCat. Na przykład deklaracja zmiennych. TwinCat dość specyficznie w stosunku do tradycyjnych sterowników ma zorganizowane projekty. Z tego co rozumiem to mogę mieć kilka projektów sprzętu i kilka programów i łączyć je. Muszę tylko z linkować zmienne. W systemach które...
globalny zmienna zmienna globalny deklaracja zmienna
piszczy czujnik telewizor samsung standby bezpiecznik kuchni elektrycznej
Podłączenie NIBE F1245 do sieci LAN na Windows Understanding Tuya Beacon Mesh Bluetooth Protocol