Tworzenie dynamicznej tablicy int ile=1; unsigned char *wsk=new unsigned char[ile+1]; //na koncu zwalniamy pamięć delete [] wsk;
Uff, ale narobiliście bałaganu ;-) Tak po chłopsku: volatile - obojętnie gdzie to tylko wskazówka dla kompilatora, aby nie optymalizować static ma 2 różne znaczenia w zależności gdzie jest użyte: 1. w funkcji - powoduje, że zmienna jest jak pisze atom1477 "nieulotna" czyli jej wartość jest zachowywana pomiędzy kolejnymi wywołaniami. Dlatego, że pamięć...
Witaj, Po pierwsze w Bascomie możesz zadeklarować programowy bufor USARTA w dodatku z wieloma sygnałami sterującymi Twoją ramką a po drugie pamięć EEPROM możesz zapisywać stronami bodajże po 32 bajty co oczywiście nie zmienia faktu, iż zapis strony potrwa tyle co zapis bajtu, nie mniej. Pozdrawiam... robiw
Typ **ptr to wskaźnik do wskaźnika. Jest użyty ponieważ compress_jpeg zwraca w nim adres pamięci pod którym został zapisany obraz jpeg. Dlatego powinien być użyty w taki sposób: compress_jpeg(tablica_RGB, 64, 64, &tablica_jpeg); Druga sprawa to użyty tu output manager sam alokuje potrzebną pamięć, dlatego podajesz tylko sam wskaźnik, nie trzeba...
Witam! Hmm... Na początku to trochę rozwlekłeś strukturę. Niepotrzebnie pola: imię, nazwisko, dzień, miesiąc, rok zdefiniowałeś jako tablice dwuwymiarowe a konkretnie niepotrzebnie dodałeś indeks 1 czyli tam, gdzie masz po 10. Powinieneś zadeklarować zgodnie z sugestią Kolegi krru czyli: [syntax=c]struct dane { char imie[30]; char nazwisko[30]; int...
Dynamiczna alokacja jest po to aby na sztywno nie rezerwować całego obszaru LCD tylko w zależności od potrzeb, jak ci się nie podoba rezerwacja dynamiczna powołaj tablice jako globalna i przekazuj funkcji. Ja nie narzekam na kod wszystko się fajnie analizuje. Dodano po 56 czyli jak dam +1 to też zadziała? Dodano po 15 A jeszcze jedna sprawa czy linia...
Po łebkach opisany algorytm... 1.Rysowanie wektora robisz tak a)rysujesz kreskę b)rysujesz trójkąt na końcu (pozycję obliczasz z wykorzystaniem zamiany wartości x/y c)wypełniasz trójkąt czarnym kolorem d)jeżeli jest włączona opcja przesuwania wektora to dodatkowo rysujesz 3 kólka (na początku, na środku do przesuwania całego wektora i na końcu) 2.Dane...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
https://obrazki.elektroda.pl/4046511300_... CH341 to popularny interfejs USB, który umożliwia komunikację z urządzeniami SPI, I²C, UART oraz bezpośrednią kontrolę pinów GPIO. Dzięki temu modułowi można np. programować pamięci Flash, czy odczytywać dane z różnych czujników. Tutaj pokażę, jak można go samodzielnie obsłużyć z poziomu...
Przy okazji taka ciekawostka: można zadeklarować wartość lub tablicę wartości z konkretnym adresem w pamięci programu, a potem w trakcie pracy użyć funkcji samoprogramowania by te wartości zmieniać, uzyskując funkcjonalność EEPROMu w układach bez EEPROMu, przy czym wartości są dostępne w trakcie normalnej pracy programu... De facto, pamięć programu...
o ile mi wiadomo to C++ nie ma możliwości zadeklarowania wprost tablicy dynamicznej Dokładnie tak jest, ale wystarczy prosty trick, trzeba zadeklarować wskaźnik do tablicy i zaalokować mu pamięć. O reszte się martwi już system operacyjny, albo przydzieli pamięć albo nie.
Co to będą za próbki? Jak często będą zapisywane i odczytywane? Jeżeli dość często będzie zapis - zajeździsz pamięć... ma tylko 10.000 cykli. Zewnętrzna pamięć jest chyba nieunikniona. Dodano po 2 Albo "większy" procesor. Dodano po 1 Co do Twojego pytania - nie wiem, PIC-ki to nie moja specjalność. Może taka porada będzie pomocna - poszukaj w helpie...
Chodzi o to że potrzebuje szybko zapisać do pamięci kilka kB danych jednak nie chciałbym dokładać pamięci EEprom gdyż mam już gotową płytkę. Moje pytanie brzmi czy w systemie z Atmegą8 mogę wolną pamieć programu zadeklarować jako jakąś tablice do przechowywania danych?? Kod programu zajmuje mi 20% miejsca. Czy zapis danych do zewnętrznej pamięci EEPROM...
Otóż po co mi to potrzebne. Procek DS89420 posiada wewnętrzną pamięć SRAM 1kB. Po włączeniu zasilania jej zawartość jest przypadkowa, a dostęp do niej ustawia się programowo. Zmienne które zadeklarowałem przed f. main i nadałem im wart pocz. są w rzeczywistości nadal przypadkowe. I muszę je reinicjalizować po funkcji main. Ponieważ znacząca większość...
3. Jak zadeklarować strukturę w pamięci SDRAM za pomocą GCC ? Nie zadeklarujesz, bo maksymalną wielkością danych jaką może operować GCC dla AVR są 32kB za sprawą 16b wskaźników. To już nie do końca prawda, bo obecnie avr-gcc (>4.7) wspiera 24-bitowe wskaźniki. Niemniej przy takiej ilości pamięci należałoby zmodyfikować skrypty linkera, żeby to uwzględniały....
Witam, mam wrażenie że Bascom strasznie pożera pamięć RAM, wystarczy zadeklarować kilka zmiennych typu double i już program nie chce się kompilować, podczas gdy na analogicznym procesorze PIC, programowanym w C, te same instrukcje nie powodują zajęcia pamięci RAM, a robi to dopiero inicjacja zmiennych, czy wykonywanie na nich operacji arytmetycznych,...
Słowo kluczowe extern nie oznacza ze coś będzie widoczne w innym pliku, tylko ze pamięć na to będzie zadeklarowana w innym pliku. W pliku .h powinieneś zdefiniować strukturę, natomiast w pliku .c powinieneś dołączyć plik .h i zadeklarować pamięć na nią plik.h ////////////////////////////////////////... #ifndef plik_h #define plik_h /* tutaj wstawiasz...
Płyta nie obsłuży więcej niż 2GB RAM=u. Kupiłem 2x512 dodatkowo i nic z tego- komputer w ogóle nie rusza. W tym problem. Ponieważ w WinXP można zadeklarować pamięć wirtualną (dyskową) - więc w razie szybszego dysku SSD szybsza byłaby i pamięć dyskowa. Tak przynajmniej mi się wydaje. I chyba pod Win7 też się to ustawia. W ogóle to niebieski ekran mam...
Tablica w liście statyczna. Ale lista dynamiczna. Jak zadeklarować element listy (tutaj strct) dynamicznie tak aby jego elementy (tutaj tablicza int, wsk na wezel listy) były zadeklarowane statycznie ???
#Zmienna_lokalna__dowolnego_typu_zadekla... Każdy blok, wszystko jedno czy OB, czy funkcja, ma obszar deklaracji w okienku na górze. Więc tam, gdzie wywołujesz FC i przekazujesz między nimi parametry, należy zadeklarować potrzebną ilość zmiennych Temp, które zajmują pamięć tylko na czas realizacji funkcji, a później ją zwalniają. Potem,...
Zrób definicję szkieletu tablicy. Potem dynamicznie zaalokuj pamięć o odpowiedniej wielkości. Na koniec nałóż tą tablicę na wskaźnik do zajętego obszaru.
Ja np. myślę, że brakuje Ci podstaw języka C :) Deklaracja: volatile uint8_t *eq = 0; deklaruje wskaźnik , któremu przypisujesz adres zero. Jeśli odwołasz się do eq[0], to odwołujesz się komórki pamięci pod adresem 0. Druga rzecz - zwracasz z funkcji wskaźnik - nawet gdybyś tą tablicę zadeklarował poprawnie, to w jaki sposób zapewnisz, że nie zostanie...
Mikrokontrolery STM32H7 posiadają kilka domen zasilania i kilka bloków pamięci. Niby nic wielkiego, ale sprawa trochę się komplikuje kiedy trzeba korzystać z DMA przy obsłudze peryferiów i dość dużych struktur pamięci. https://obrazki.elektroda.pl/4349869800_... Pamięć danych jest dostępna jako (zielone obszary): DTCM - Pamięć danych...
Zauważyłem że kompilator umieszcza moje zmienne pod koniec pamięci SRAM. Podczas debugowania programu zauważyłem typowe objawy wysypania się stosu - program nie wracał w odpowiednie miejsce po zakończeniu funkcji. Ponadto dane znajdujące się pod koniec SRAM wyświetlane są na LCD. Pomimo, że zostały one wyczyszczone na początku programu po pewnym czasie...
Romario dzięki za wskazówkę. Dowiedziałem się o tej opcji z jakiejś stronki, nie pamietam dokładnie. Nawet operatory new i delete działają, bo program sie kompiluje. Niestety nie miałem czasu sprawdzić jak to działa na procku. Ograniczeniem pewnie będzie pamięć ram, bo przeciez obiektów dynamicznie powolywać w nieskończoność nie mozna.
Tu jest monitor zasobów. http://obrazki.elektroda.pl/4164204800_1... Dodam, że to się dzieje po ok 4 godzinach w trakcie kiedy na monitorze chodzi jakaś aplikacja pełnoekranowa. Bo np. przed chwilą uruchomiłem syntetyka OCCT LINPACK i bez żadnego problemu zapełniłem ram w takim stopniu i nie było żadnych błędów (tutaj nawet bez jakiejkolwiek...
Witam! Na początek: Już masz błąd w deklaracjach i definicjach. W języku C przy definiowaniu tablic o n elementach (arr[n]), ilość elementów (tu: n) musi być stałą bądź wyrażeniem stałym, a nie zmienną. Prawidłowo powinno być np tak: [syntax=c]#define MAX_ILOSC_ELEM_W_TABLICY 100 int main(void) { int N; int a[MAX_ILOSC_ELEM_W_TABLICY]; int p; // zmienna...
Witam! W języku C deklarować i inicjować tablice można tylko wtedy, gdy ich rozmiar jest znany na etapie kompilacji. Tutaj zadeklarowana została tablica double tab[n] o rozmiarze podanym w trakcie wykonywania programu a więc NIEZNANYM na etapie kompilacji. W takim przypadku należy postąpić inaczej: zadeklarować WSKAŹNIK do elementów typu (jakiś_typ)...
Dane wpisane do tego skryptu zakładają, że nie korzystasz z ŻADNYCH wyjątków. Musisz sobie je ustawić w zależności od swoich potrzeb. __irq_stack_size = 0; Czyli po wejściu w przerwania mam dostępne 0 pamięci ram na zminne? W skrócie: Funkcji ustawiającej stosy przekazane jest 0 dla trybu XXX, a więc (w zależności od kolejności) dany stos będzie pokrywał...
To jest trochę dyskusja o gustach i kolorach jednak obsługa przerwania nie musi zawsze wpływać na stan rejestrów, poza tym stan tych rejestrów można przewidzieć a co za tym idzie zachować na stosie ale tylko tych które zostaną zmienione. Natomiast przerwanie kiedy go się obsłuży w sposób bez żadnej refleksji w C odłoży na tym stosie wszystko co się...
Witam. Temat dość stary ale podłącze się z kilkoma pytaniami, chodzi o rodzine sterowników S7 300 wersja MMC: 1) czy samo przełączenie przełacznika w pozycję MRES powoduje kasowanie pamięci sterownika? czy dopiero cała procedura "machania" przełacznikiem opisana powyżej to uczyni? 2) gdzie przechowywane są nieulotne znaczniki pamięci (retentive memory...
Kazdy proces ma stworzony swoj wlasny obraz pamieci wobec czego nie beda sobie one wchodzily w droge. Apropos twoj przyklad i tak nie realizuje tego o czym napisales bo tutaj jeden i ten sam proces korzysta z tych funkcji. Podejrzewam za chodzilo ci o cos takiego: if(!fork()) { // proces dziecka fun1(); fun2(); }...
Witam! Postaram się pomóc Ci z tymi listami. Na początek dodawanie do listy. Najprościej jest dodawać elementy na początek listy. [syntax=c]typedef struct { char tytul[32]; } TYP; struct lista { TYP dane; struct lista *next; }; struct lista *GLOWA = NULL; /* Należy zadeklarować zmienną GLOWA gdzie będzie umieszczony początek listy */ struct lista *DopiszNaPoczatek(char...
Nawet to, że nie przyszła do nas na żeberka z grilla, wbrew swoim porannym zapowiedziom, nie wzbudziło we mnie obaw. Czekaliśmy na nią długo, mimo że Baśka od początku podchodziła do tego sceptycznie. Tłumaczyła nam, że Dorota na pewno jest zajęta, gdyż dla gości prezesostwa tak samo przygotowywali wieczorną imprezę i teraz wszyscy balują pod wiatą,...
Pułapki nie powinno być :-) Pamięć M - to obszar markerów (flag) - dostępne są bezpośrednio w każdym sterowniku. Bloki danych DB należy wpierw zadeklarować i stworzyć ich strukturę, która może zawierać dowolne zmienne (od bitów, poprzez bajty, słowa, tablice itp. także różnych typów: int, real, string, time). Jest to tak jakby dodatkowy obszar pamięci....
A skąd wiesz, że program na AVR? Na niektórych µC wystarczy dodać const.
przeprowadziłem symulację u siebie i nie zauważyłem wskazanych szpilek :( ale proponuję trochę zmian: jeśli ma być to pwm o stałych współczynnikach to lepiej zadeklarować sygnał color_B jako constant. zamiast latch'y zostanie wygenerowana pamięć typu rozproszonego (distributed memory :)) . drugi process zostanie błędnie zsyntezowany ponieważ nie ma...
Wrzuciłem na serwer minimalną wersję programu, która już mi nie działa http://7ds.pl/~owca/engine.zip Hmm... Czy mógłbyś napisać, co właściwie znaczy "nie działa"? I jakiego masz AVR-a? Z uwag ogólnych: 1. To, że napisałem, że moim zdaniem często warto skorzystać z C++ nie oznacza, że można szastać zasobami. malloc() to raczej ostateczność. Nie wiem,...
Witam. Jest obecnie na etapie przenoszenia programu z Atmegi32 na Atmegę162 + zewnętrzna pamięć SRAM BS62LV256 i utknąłem na deklaracji dużej ilości zmiennych. Poniżej fragment większego kodu: $regfile = "m162def.dat" ' specify the used micro $crystal = 12500000 ' used crystal frequency $baud = 9600 ' use baud rate $hwstack = 100 ' default...
Czy po każdym wywołaniu rozkazu Set należało zwolnić pamięć? Prawdę powiedziawszy nie jestem do końca pewien, może ktoś inny wie lepiej:) Wg źródeł na necie, np. raz w całym kodzie, ale już przypisanie Set x = Worksheets(WorksheetName) wykonujesz wielokrotnie w pętli, tam, przy większe ilości arkuszy - jeżeli faktycznie pamięć nie jest zwalniania -...
... i parę wad - wydajność, rozmiar kodu... A co tam, klient zapłaci za większą pamięć i szybszy procesor... ;) Nie zgodzę się absolutnie. Jedno wywołanie aby pobrać wskaźnik na tablicę nie zwiększy kodu w stopniu wymagającym zmiany procesora. Tablicę można przecież pobrać do lokalnego wskaźnika i po problemie, jeśli API definiuje nam, że wskaźnik...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Jeżeli ma być to tablica rejestrów do których coś wpisujesz robisz po prostu RAM [syntax=vhdl] library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity rams_01 is port (CLK : in std_logic; WE : in std_logic; EN : in std_logic; ADDR : in std_logic_vector(5 downto 0); DI : in std_logic_vector(15 downto 0); DO : out std_logic_vector(15...
Pomyślałem, że może i ja udzielę się w tym temacie, tymbardziej, że póki nie dostanę mojej pierwszej lutownicy to będzie to jedyny dział (Programowanie ...), w którym czuję się dobrze. Nie pamiętam już od kiedy zacząłem interesować się programowaniem. W każdym bądź razie jeszcze przed liceum, w czasach gdy na mojej zapyziałej wsi nie było dostępu do...
Mam takie pytanie: czy kompilator może przydzielić bloki w pamięci EEPROM w kolejności innej niż zadeklarowano je w programie? Nie możesz założyć, że kolejność zmiennych w pamięci jest taka, jak zadeklarowana w programie. Gwarantowana jest kolejność pól struktury, więc zamykając twoje tablice w strukturę, przy założenu, że w EEPROM nie ma innych zmiennych,...
Aby zapisywać i odczytywać zmienne z wbudowanej pamięci EEPROM musisz zadeklarować jakąś zmienną w tej pamięci http://avr.elektroda.eu/node/3 W tej chwili zapisujesz i odczytujesz jakąś przypadkową zmienną w pamięci SRAM
Witam, Używanie funkcji _delay_ms(); ze zmienną nie jest dobrym pomysłem. Taka implementacja zajmuje bardzo dużo pamięci. Lepiej zadeklarować funkcję np. _delay_ms(1); i wykonywać ją w pętli tyle razy ile potrzeba. Liczbę wykonań pobieramy z tablicy.Taki sposób jest zdecydowanie mniej pamięciożerny. Pozdrawiam, Marcin
W skrypcie linkera masz zadeklarowaną zbyt małą pamięć. 4\/3!!
Wstałem rano z wyspaną głową i patrzę na Twój kod przy kawie. Deklarujesz 80 bajtów na adresy czujników. Start każdego adresu określasz tak, że mnożysz razy dziesięć wartość zmiennej "Zmienna" Pierwszy Dallas zajmuje więc komórki 10,11,12,13,14,15,16 i 17 Siódmy Dallas zajmuje 70,71,72,73,74,75,76 i 77 ... i tutaj zadeklarowane 80 bajtów się kończy......
Najprościej byłoby chyba zapamiętywać sterowanie jako sekwencję zdarzeń rozmieszczonych w czasie, np. 1) wciśnięcie gazu w momencie o timestampie rownym 0.65 sekundy, 2) wciśnięcie skrętu w lewo w czasie 5.2 sek, 3) puszczenie gazu w momencie 8.5 sek, itd. Forma zapisu w pamięci - proponuję zadeklarować typ, w którym każde zdarzenie otrzyma swoją nazwę...
rezystor pamięć pamięć delay pamięć delay pamięć pamięć 24xxx
urmet schemat zasilacz równać kwadratowy cyfrowy notatnik
interfejs delphi mercedes regulacja biegów
Wymiana podświetlenia pokrętła w piekarniku Amica z chowanymi pokrętłami Canon EOS M6 Mark II – lokalizacja baterii podtrzymującej pamięć, superkondensator, reset daty