nie wiem jak codevision ale w gcc chyba nie da sie tak nisko zejsc zeby wybierac tryb adresowania w instrukcjach, to juz kompilator wybiera sobie , w kodzie mozna sobie tylko napisac cos w stylu: a = *wsk++; *(--wsk) = a; i miec nadziej ze skompiluje sie tak jak chcemy lub gdzie potrzeba szybkiej procedury to w asmie napisac. Ja tam pamiec wewn/zewn...
Witam Najprostszy sposob to po prostu wymienic pamiec na nowa (koszt max 10 pln. W procesorze Amstrada zaszyty jest program startowy ktory przepisuje sie do pamieci po jej wymianie, wada- stracisz dotychczasowe ustawienia lecz chyba z tym juz sobie dzsz rade. Lub wyjac pamiec zgrac program skasowac pamiec i dalej jak wyzej . Zgranie programu jest niezbedne...
Ja bym zaproponował może tak: Przed rozpoczecie ładowania programu istniejący sprawny program kopiujesz do pamieci obojętnie jakiej. Następnie ładujesz program w docelowe miejsce i oczywiscie po weryfikacji odpalasz. Dopisujesz funkcje w programie co ma sie dziac w przypadku błedu weryfikacji lub błednego działania programu - np zadziałanie ...doga...
Niestety jako początkujący użytkownik Deplhi mam pewne problemy z odebraniem danych z portu COM. Mój program działa na zasadzie wysyłania do mikrokontrolera znaku z PC z ilością odczytywanych komórek pamięci danych. Przykładowo jeśli wysyłam 'A' odczytywana jest jedna komórka, 'L' dwanaście komórek itd. Ta funkcja programu działa prawidłowo. Problem...
Czy ktoś potrafi mi wyjaśnić drogę programu od napisania do umieszczenia w mikrokontrolerze ? kompilator odkłada funkcjie main na stosie ? co się dzieje np. z takim zapisem : int wyw(4,5); // deklaracja funkcji wyw int main(void) //Co się dzieje z funkcją i jej ciałem gdzie ona trafia proszę o schemat tego procesu { int zmienna=5;...
Szerokość danych pojedynczego rozkazu wcale jakoś szczególnie nie przyspiesza. Można to łatwo sprawdzić kompilując program używający 64-bitowych zmiennych jako aplikację 32-bitową. Może i nie ale łatwiej pewne sprawy by było rozwiązać mając do dyspozycji 128 bitowe zmienne. No ten skoromny programik pokazuje, że granice architektury 64 bit można szybko...
czy Crossworks jest taki madry, aby sam potwierdzac przerwania w ich ISRach? w kazdym z nich brakuje przypisania dowolnej wartosci do rejestru VIC odpowiedzialnego za adres... osobiscie nie sadze, aby Crossworks zalatwial to sam, bo w koncu oparty jest na gcc, ktory tego nie zalatwia. bez tego kolejne wywolanie przerwan nie bedzie mozliwe raczej......
Zmieniłem nieco kod programu. Obecnie wygląda tak: /***************************************... This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 2009-07-12 Author :...
Panel Sterowania -> Programy i funkcje.
C++ jest za wysoki do mikrokontrolerów. Gbyby nawet był kompilator to pewnie jedna funkcja zajeła by jego całą pamięć programu. :cry:
Witam, Zapis do EEPROM jest przykładowy i nie ma tutaj większego znaczenia. W moim docelowym programie używam struktur danych. Dla uproszczenia użyłem zmiennych typu int16_t. Chodzi raczej o przekazanie parametrów (wskaźników do pamięci Flash) w funkcji. W jaki sposób należy prawidłowo to wykonać? Czy należy ustawić wskaźniki poza funkcją? pozdrawiam...
Run time error 6 występuje wtedy gdy komputer nie spełnia wymagań programu, ma zbyt mało pamięci lub błąd jest generowany przez sam program. Jaki system ? Po uruchomieniu programu ile masz wolnej pamięci ? Nie ubywa jej w funkcji czasu ? Sprawdź zaraz po uruchomieniu programu i później w odstępach np.1 godziny ile ubywa wolnej pamięci.
Witam. Ten uC posiada tylko 512 bajtów SRAM. Jest to niestety niezbyt wielka ilość. Najprawdopodobniej wykorzystujesz pamięć w pełni i dlatego program się sypie. Zwróć uwagę na to, że zmienne, tablice i ciągi deklarowane w programie umieszczane są właśnie w pamięci ram, do tego jeszcze skompilowany program używa pamięci jako stosu. Im więcej zagłębień...
nie możesz zwracać dwóch wartości w taki sposób! Albo przygotuj strukturę, albo osobne funkcje, albo skorzystaj z referencji. To co widzisz, to po prostu śmieci z pamięci.
Witam jeśli dysponujesz boxem lub kabelkiem rs232 i systemem xp to pobierz sobie sofcik do sagema może być z serii MC9xx i wejdź w self test jest tam funkcja sprawdzenia wyświetlacza włącznie z nasyceniem kontrastu i zapisem do pamięci telefonu , nie używaj innych funkcji w tych programach bo ubijesz telefonik jest jeszcze bodajże wersja softu do serii...
Trzeba włączyć różne optymalizacje g++ - przede wszystkim -Os, ew. dodać inne, np. optymalizację prologów i epilogów funkcji.
Zamiast wstawiać argument do delaya umieść delaya w pętli for ze stałym argumentem. Zmienna zawsze znajdują się w SRAM. Ale stałe można umieścić w pamięci programu.
Czy np. stosowanie tablic, pętli tylko ułatwi programowanie (np. skróci długość programu "polepszy przejrzystość" kodu), czy ma też wpływ na prędkość działania, stabilność pracy? Raczej to pierwsze chociaż na prędkość działania ma oczywiście wpływ sposób w jaki iteruje się po zmiennych. Odnośnie pamięci - czy dla arduino ma znaczenie, że program i...
Najprostsze rozwiązanie. Tworzysz w pamięci programu tablicę funkcji sinus (na 8 bitach). Tworzysz trzy wskażniki do danych w tablicy, przesunięte o 1/3 rozmiaru tablicy. Ze zmienną częstotliwością (zmienianą np. przerwaniem od timera) odczytujesz wartości z tablicy i wystawiasz na trzy porty. Zwiększasz wskaźniki. I to chyba cały algorytm
Pierwszy raz w życiu widzę aby wywoływać rekurencyjnie funkcje main. To tak jakby we wnętrzu programu jeszcze raz uruchamiać samego siebie. Utwórz osobną funkcję silnia i wewnątrz niej wywołuj silnia(n-1). Funkcja main to nie zwykła funkcja i jej argumenty nie mogą być definiowane przez programistę. U ciebie argument funkcji main będzie miał wartość...
W programie PonyProg jest funkcja SWAP ale nie wiem czy o takie odwrócenie Ci chodzi - musisz sprawdzić na próbę wstaw dowolny hex. Pozdr. N.
Niestety avr-gcc zawarte w najnowszej wersji winavr jeszcze nie posiada wsparcia dla 2560. Cały problem polega na tym, że przekroczono magiczną granicę 64k słów programu i każde wywołanie funkcji odkłada 3, a nie 2 bajty na stosie (posypie się obliczanie pozycji argumentów przekazywanych przez stos). Podobny problem dotyczy wskaźników do funkcji i danych...
Nie ma żadnego haczyka.Po prostu przycisk SELECT należy naciskać tyle razy aż pojawi się funkcja programowania, poszukać program, zapamiętywanie jest automatyczne.
_delay_ms(zmienna) To jest właśnie problem. A dlaczego? Zobacz co to za makro i jak go używać. Chcesz użyć zmiennych? To korzystaj z odpowiedniej funkcji i timera.
Jeśli piszesz w WinAVR i otworzysz plik w asemblerze to zobaczysz, że każde nie używane przerwanie prowadzi do resetu. Nieużywane tzn. nie posiada funkcji obsługi przerwania. Przerwanie takie od np. przepełnienia timera może nastąpić jeśli zostanie odblokowane, ale jak mówisz w tym przypadku to nie to. Możesz po prostu wyłączyć watchdoga i upewnić się...
Ależ są poprawnie ładowane. W AVR pamięć programu jest adresowana w słowach, a nie w bajtach.
Do odczytu z pamięci programu użyj: pgm_read_byte lub memcpy_P Tu masz więcej funkcji/makr, które mogą Cię zainteresować: http://www.nongnu.org/avr-libc/user-manu...
(at)rewolt90 Nie jest dokładnie tak jak piszesz. AVR gcc domyślnie umieszcza literały znakowe ("abcd...") w pamięci RAM. W twoim oryginalnym programie te literały były dodatkowo kopiowane na stos przy wywołaniu funkcji main co powodowało przepełnienie stosu. Dodanie static nie wymusza tego, że te zmienne wylądują w pamięci programu. Uniknąłeś w ten...
Robisz to tak samo jak przy pomocy makefile - tyle, że w AS definiujesz nową sekcję i określasz jej adres. Następnie używasz atrybutów gcc, aby wskazać, żeby określona zmienna/funkcja się w tej sekcji znalazła. Resztę robi linker.
Nie napisałeś jakie dokładnie 315, ale zakładając, że nie jest przedpotopowe ;) to masz w nim zajęte jakieś 10-20% pamięci roboczej. Pozostaje pytanie, jak skomplikowany jest ten program. Czy duże znaczenie ma czas jego wykonania oraz obsługa procesu, którym steruje? Pod względem dostępnej pamięci na pewno się zmieścisz w 1214, w nowych firmware'ach...
Co do roznicy to nie bardzo wiem ale co do stosu: -jest to specjalny "kawalek" pamieci RAM ktory sluzy do odkladania informacji przez procesor. Jest to pamiec typu LIFO (last in first out) Taki przyklad: wykonywany jest program podczas ktorego zostaje wywolane przerwanie. W tym momecie procesor odklada adres w ktorym program zostal przerwany na STOS....
Za mało wiem o projekcie jeszcze. Używasz WinAPI ? Używasz standardowego io ? Można to zrobić pipeliningiem (named pipe), albo wymianą obiektów czymś na wzór bazy danych. Pierwszy program pisze do pliku a drugi z niego czyta. Można to samo zrobić na socketach. Obiekty mogą być serializowane w jednym programie i deserializowane w drugim. Udostępnianie...
Cześć Według mnie to nie jest pamięć w której jest przechowywany program panel opisujący jego funkcje do obsługi maszyny. Tam najprawdopodobniej jest "system operacyjny" panela. Chyba że ten panel jest programowany w taki sposób że się wymienia pamięć eprom. Pamięć ta jest kasowana UV czyli bezpośredni w panelu nie może być programowana. Proponuje poszukanie...
To że tam pisze to wiem, ale nie wiem gdzie podłączyć wyprowadzenia I0..I7 i O0..O7 pamięci 28C65 (podejrzewam że któregoś portu, ale nie jestem pewien do którego), więc wolałem się spytać czy ktoś przypadkiem niema np. schematu ich połączenia. I czy można te układy połączyć bezpośrednio (bez układów pośredniczących) jeśli eeprom ma pełnić funkcję pamięci...
Czyżby w tekim sprzęcie Japończyk nie przewidział tej powszechnie użytecznej funkcji?
Zdecydowanie tak to nie działa. Pamięć flash jest w zasadzie pamięcią typu "tylko do odczytu", zatem nie bardzo nadaje się do przechowywania bieżących wyników obliczeń. To, że można przeprogramować jej zawartość, czasem nawet z programu, to inna sprawa. Natomiast zmienne programu lądują z zasady w pamięci RAM (w mikrokontrolerach zwykle SRAM, nie ma...
(at)lycon5 Zmień ustawienia fusebitu M103C - MCU jest sprzedawany z zaprogramowanym fusebitem, co zmienia działanie na tryb kompatybilności z ATMega103 - w efekcie stos jest ustawiany na nieistniejącą pamięć RAM jeśli używasz M64.
Witam. Pilnie poszukuję programów wykonanych w ESCAPE (Environment for the Simulation of Computer Architectures for the Purpose of Education). Pierwszy program polega na obliczeniu średniej arytm. 3 liczb z wykorzystaniem operacji odczytu i zapisu pamięci. Drugi program polega na obliczeniu pierwiastków funkcji kwadratowej. Link do ESCAPE poniżej http://www.speedyshare.com/t9Dzv/esc116....
Kilka miesięcy temu napisałem do tego drobny program oferujący kilka funkcji niezwiązanych z programowaniem pamięci (odczyt Smart Battery, odczyt danych z kilku typów czujników, sterowanie kilkoma wyświetlaczami) - trochę jak Bus Pirate: https://obrazki.elektroda.pl/6692240700_... https://tomeko.net/software/CH341A_tool/
Atmega2560 posiada 256kB pamięci. Załóżmy, że program zajmie 25k, zostaje jeszcze 225kB. Zatem, Twoich "plików" wejdzie 225 / 0,72 = 312 plików po 720 bajtów. Dostęp do danych przez funkcję lookup https://avrhelp.mcselec.com/index.html?l...
Jezeli makro LCDC_DDA wygląda tak: #define LCDC_DDA 0x80 to jego wywołanie z parametrem : LCDC_DDA|64) powinno wywołać błąd i nie ma najmniejszego sensu(chyba ze definicja tego makra jest inna) Pozatym cały czas mówię o tym zebys wkleił rozwinięcie tego drugiego makra i implementacje czyli definicje tej fukcji do wyswietlania stringów. Kod rc5 nie bedzie...
Moim skromnym zdaniem to biblioteka openCV może czasem potrzebować systemowych funkcji, które nie są dostępne dla aplikacji uruchamianej w LSA (choćby po to żeby załadować bitmapę do pamięci). Dlatego dopóki nie dołączysz do programu tej linijki z wywołaniem funkcji openCV wszystko działa normalnie. Spróbuj pobawić się z tym tool-em : http://technet.microsoft.com/en-us/sysin...
A co chcesz optymalizować? W LTSpice jestem dosyć zaawansowny, w analogówce też, w Matalbie średnio (właściwie to używam Octave) i to też do niezbyt skomplikowanych rzeczy. Nie miałem potrzeby robić optymalizacji matematycznym sposobem z wyznaczaniem funkcji celu, bo zazwyczaj optymalizuję 1-2 parametry, a takie rzeczy robi się w pamięci. To jakieś...
Witam ! moim zdaniem najlepszym programem do czyszczenia pamięci ram jest FreeRAM XP Pro 1.52 . Program jest darmowy. dodatkowo posiada funkcję czyszczenia pamięci co pewien czas :D
hint 1: Tablice do funkcji zwykle przekazuje sie (ze wzgledu na ich wielkosc) przez wskaznik (operujesz na oryginale nie na kopii). hint 2: W C nazwa tablicy jest adresem jej pierwszego elementu.
pamięć ram i pamięć programu nie znajdują się w tej samej przestrzeni. LPM (load program memory) odczytuje z pamięci programu, LD (load data) wczytuje z przestrzeni pamięci. Zmień LPM na LD r16, Z (pomijając mov r16, r0) tak jak napisałem w drugim poście tematu.
Witam, Pytanie do osób biegłych w tym środowisku, bo niestety w tym względzie jestem zielony. Czy można wskazać w liniach kodu programu (chodzi o C) bezpośrednie położenie danej procedury lub funkcji w wybranym miejscu pamięci programu? Chodzi o to, aby dana część była położona tam, gdzie konkretnie sobie to założyłem. Z pozoru to pewnie banalne pytanie,...
jeśli kiedyś w tym otv została włączona funkcja autoinstal i instalacja została przerwana to po włączeniu odbiornik zawsze będzie do niej wracał należy ją przeprowadzić do końca łącznie z układaniem programów, jeśli mimo to funkćja ędzie nadal wyskakiwać można wymienić pamięć, co do wyłanczania i standby po włączeniu wyłącznikiem sieciowym otv zawsze...
Robi wrażenie. Wykorzystanie 8051 w czasach TTL dawało możliwość dodawania kolejnych funkcji tylko kosztem zajętości pamięci programu. No i w porównaniu do TTL można było zrobić zegarek wielkości wyświetlacza LED i zamknąć w obudowie wielkości nie większej niż np. 2-3 pudełka zapałek. To było coś :)
Czy jesteś pewien, że stos Ci się nie przepełnia? Kompilator przed tym nie ostrzega, bo nie zawsze można na poziomie kompilacji przewidzieć rozmiar stosu. Stos w AVRach wypełniany jest od końca pamięci SRAM, jak się stos spotka z danymi, no to koniec... Czy masz w programie sytuacje, że np. wywołujesz funkcję w innej funkcji, albo nawet głębiej? Albo...
Bios zmodyfikowany i działa bootowanie WinXP 32-bit Legacy i WinXP 64-bit Legacy lub UEFI z dysku NVMe - piękna sprawa Zabijesz komórki pamięci w tym dysku nvme, Windows XP nie miał funkcji TRIM i nigdy nie był przystosowany do obsługi dysków SSD. Opcją jest znalezienie jakiegoś programu co będzie emulował funkcję TRIM. Zanim zabije to już dwa razy...
pamiec 24c01 pamiec canon hyper pamiec
schemat kostki radia panasonic wymiana rolki ustawienie blaszek termostacie
generator kwarcowy grundig wzmacniacz
Instrukcja obsługi Pioneer VSX-527 po polsku Instrukcja obsługi podgrzewacza Siemens DH 1800