A od kiedy to wskaźniki na AVR mają wielkość podwójnego słowa (32-bity)? Może kolega np. zainteresuje się sizeof(typ)?
Dlaczego upierasz się , by wepchać wskaźniki do pamięci programu :?: Mówisz kompilatorowi - umieść wskaźnik do pamięci programu , w pamięci programu ... const prog_char* info[] PROGMEM = ... ... , a powinieneś powiedzieć - umieść wskaźnik do pamięci programu , w pamięci data(RAM) const char* info[] = { PM_UST_ZEG, PM_UST_CZAS, PM_UST_DATE};...
Podsunąłeś mi pewien pomysł... zrzutowałem sobie wskaźnik na tekst w pamięci programu na typ void* Kompilator rozpoznaje typ void* i odróźnia go. Później znowu sobie go rzutuje na const char*. o t6akiej opcji tez myslalem :)... ale stwierdzilem, ze przesada... i, ze w razie innych funkcji podobnych, trzebaby ciagle o tym pamietac :)... ale skoro dziala...
extern należy dodać wtedy gdy dołączamy ten sam plik .h kilka razy (zresztą kompilator nas o tym uprzejmie poinformuje). Wskaźnik jest zmienną wskazującą na dane w obszarze flash i jest umieszczony w RAM'ie'. Wskaźnik może wskazywać również na dane w RAM'ie.
Witam, programuje układy uk PIC i mam takie pytanie - w zasadzie problem: czy warto stosować wskaźniki np. w funkcjach odczytu zewnętrznej pamięci EEPROM? Kolega robił eksperyment i procedura z użyciem wskaźników zajmowała więcej pamięci w uK, zarówno w pamięci flash jak i operacyjnej. Napisał dwa tak samo działające programiki - zapis kolejnych komórek...
Pamięć jest zorganizowana w komórki 16-bitowe, objawia się to np tym że wskaźnik programu wskazuje na słowo (2 bajty) a nie na bajt. Wszystkie instrukcje muszą być więc wyrównane do granicy dwóch bajtów. Jakkolwiek z poziomu samego programu pamięć flash jest zorganizowana bajtami, więc spokojnie można w niej umieszczać tablice bajtów bez utraty pamięci....
Aby działało to dobrze to na samym początku programu trzeba ustawić wskaźnik stosu (o ile pamiętam SPH i SPL) np. na adres końca pamięci RAM. Procesor nie robi tego automatycznie i potem np. przy wywołaniach podprogramów program się krzaczy.
Mam problem z programem. Napisałam go przy użyciu dużej ilości wskaźników do struktury jako argumentów funkcji. Wszystko działa pięknie. Podczas pisania programu stwierdziłam że czemu by nie napisać tego podając do funkcji strukture a nie wskaźnik do niej. Zaczynając zmieniać wszystko, program przestał działać. Jeśli przekazujesz cała strukturę do...
Po pierwsze to trzymaj się odpowiedniego szkieletu programu. Przykład poniżej. Musisz ustawić m.in. wskaźnik stosu. .INCLUDE "m16def.inc" ;plik nagłówkowy stosowanego procesora ;deklaracje .DEF, .EQU itp. .DSEG .ORG 0x0060 ;początek pamięci SRAM procesora .CSEG .ORG 0x0000 ;wektor zerowania - inicjalizacja µC. rjmp reset reset: ldi...
To: jpeg_mem_dest(&cinfo); // store jpeg image in memory ustawia wyjcie danych do pamięci RAM zdaje się. A gdzie jakiś wskaźnik? Czyżby tu: cinfo->dest = (struct jpeg_destination_mgr *) ? jpeg_mem_dest() jest wywoływana przez funkcję compress_jpeg(). Więc w niej należało by szukać tego wskaźnika. Z nagłówka funkcji widać że do funkcji...
push/pop stosuje się, żeby zachować wartość początkową rejestrów, jeśli w innym miejscu programu są wykorzystywane. ldz - nie ma takiego menmonika w asemblerze AVR. Zapewne to jakieś makro. brcc - wykonuje skok jeśli wskaźnik carry (przeniesienia) jest wyzerowany, co ten wskaźnik oznacza to sobie doszukasz. lpm r16, z - ładuje do rejestru r16 wartość...
W nawiązaniu do porad kolegi tmf proponowałbym coś w tym stylu (być może strach przed kwalifikatorem __flash wynika z braku przykładów kodu :?: : [syntax=c] // przykład jak używać kwalifikatora __flash do umieszczania // danych w pamięci programu i jak się do nich odwoływać // kod gotowy do odpalenia w symulatorze Atmel Studio 6 // można zaobserwować...
(at)idepopizze Chyba tak zrobię... Problem z tym, że jak dojdą jeszcze z 2 języki to kodu będzie od groma! Jak nic nie wymyślę to najwyżej w międzyczasie pomyślę nad implementacją menu pomysłu tadzika. po prostu szukałem pomysłu na zapis stałej... nawet jeżeli miałoby się to wiązać z resetem programu czyli: - wybierz język (0-3) - zapisz stałą do flash:...
https://obrazki.elektroda.pl/5766737500_... Witajcie moi drodzy. Przedstawię tutaj krok po kroku proces pisania otwartego oprogramowania dla modułu WiFi XR809/XR3 na przykładzie czujnika otwarcia drzwi. Mój firmware dla niego będzie kompatybilny z Tasmota HTTP i pozwoli używać go niezależnie od serwerów producenta. Da nam to również...
Nie jestem przekonany co do tego, że użycie tablicy z maskami poszczególnych bitów zoptymalizuje dostęp: w moich wstawkach liczenie maski to dokładnie 7 cykli na dwóch rejestrach(załadowanie 1, jeśli bit1 ustawiony to załadowanie 4, jeśli bit0 ustawiony to przesunąć w lewo o 1, jeśli bit2 ustawiony to zamienić połówki), rozwiązanie z ładowaniem maski...
Rany, co za piękna i kwiecista polszczyzna techniczna ;) :D - resorsy pamięci (to chyba zasoby pamięci ;) - hardwarowe implementacje (chyba chodzi o implementacje sprzętowe ;) - pointer staku :D (chyba wskaźnik stosu) - hardwareowo (chyba sprzętowo) - softwareowo (chyba programowo) (czyt. "tasku") czytaj zadania ;) - czas egzekucji (toż to jakieś katowskie...
Dynamic Battery Simulator 2281S-20-6 Keysight N6705B DC Keithley Series 2300 Battery Simulating DC - model2306,2308 Keithley 6060B-J08 Special Order Electronic Load Cadex C8000 ale i Cadex serii C7000 Rigol DL3000 Series DC Electronic Load ewentualnie ACCUMASTER C5 (• Zintegrowany Datenlagger do zapisu przebiegu krzywych ładowania/ rozładowania...
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...
Napięcie na 17 i 18 µP powinno się zmieniać z zależności od mocy (PAD) i SWR (ODB). Powinieneś sprawdzić czy sprzęgacz działa prawidłowo tzn. czy na wejściu PAD przy obciążeniu 50Ω występuje jakieś napięcie i czy jest zależne od doprowadzonej mocy, a na wejściu ODB jest w tym czasie 0V, bo jeśli jest <>0V trzeba zrobić korekcję trymerem...
https://obrazki.elektroda.pl/1533250900_... BK7231T/BK7231N to popularny SoC WiFi i Bluetooth, szeroko stosowany w produktach Tuya Smart. BK7231 można znaleźć w inteligentnych gniazdach, inteligentnych żarówkach LED, inteligentnych przełącznikach itp. BK7231 zwykle występuje w postaci modułów, które są pin-to-pin kompatybilne z modułami...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
https://obrazki.elektroda.pl/4024708700_... Witajcie moi drodzy. Przedstawię tu pierwszy na świecie tutorial programowania modułu WiFi WB2S, czyli BK7231. Moduł ten występuje w wielu urządzeniach smart home, a w internecie panuje opinia, że nie można stworzyć dla niego własnego firmware. Nic bardziej mylnego - pokażę tu krok po kroku...
.org 0x0000 ; ustawia adres w pamięci programu rjmp reset ; skocz do etykiety ... ; wektor przerwania timer 1 .org 0x0005 rjmp led_off ; skocz do obsługi przerwania ; w tym przykładzie początek programu głównego reset: ; Jako pierwsze ustawienia stosu (w asemblerze jest to ; bardzo ważna operacja i programista nie może o tym zapomnieć)....
https://obrazki.elektroda.pl/4375354000_... Jakiś czas temu dostałem centralkę domofonu. Było to zamontowane w jednym z bloków w Grudziądzu. Postanowiłem się tym trochę pobawić. Poniżej znajdują się fotografie z kolejnych etapów demontażu: https://obrazki.elektroda.pl/3034659400_... https://obrazki.elektroda.pl/7523674300_...
https://obrazki.elektroda.pl/7088978900_... Nie tak znowu dawno temu, jeszcze gimnazjalistą będąc natrafiłem na Układ FV-1 (właściwie SPN1001) jest procesorem DSP zaprojektowanym przez śp. Keitha Barra oraz Franka Thompsona, a produkowanym przez ich firmę - SpinSemiconductor od roku 2006. Cechą szczególną tej jednostki jest jej kompaktowa...
projekt mam już obmyślony... Miałby być to coś w stylu komputera pokładowego który ma wyświetlić temperatury w różnych miejscach, pokazywać czas w różnych formatach; aktualny, od początku rzuszenia, stoper, wskaźnik obrotów silnika... prędkosc aktualną, przebieg... różne konfiguracje przebiegu; dzienny itp. aktualny bieg który jest załączony... Fakt,...
https://obrazki.elektroda.pl/4689387300_... Jak niedawno zapowiadałem, prace nad projektem efektora do miksera Behringer DJX700 praktycznie zostały zakończone. Na chwilę obecną mam działający układ wraz z devboardem i ukończone programy efektów. Ale po kolei. O samym procesorze FV-1 możecie poczytać w innych moich tematach; konkretnie...
http://obrazki.elektroda.pl/6038046600_1... http://obrazki.elektroda.pl/9492337500_1... http://obrazki.elektroda.pl/8744464400_1... http://obrazki.elektroda.pl/7450126200_1... Jak to w życiu bywa, człowiek kolejny raz staje przed wyborem kupienia wątpliwej jakości chińskiego produktu,...
http://obrazki.elektroda.pl/3546939500_1... Konstrukcja będąca tematem wątku powstała jako projekt na zaliczenie przedmiotu na uczelni, którego celem było napisanie sterownika dla systemu Linux do jakiegoś urządzenia. Ponieważ miałem swobodę wyboru tematu sterownika, postanowiłem stworzyć jakieś urządzenie w postaci karty ISA. Złącze...
https://obrazki.elektroda.pl/9290552300_... Witajcie moi drodzy. Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części poznamy sterownik wyświetlacza LED MM5450, połączymy go z PIC18F2550 i napiszemy od 0 implementację ich komunikacji. Docelowo użyjemy MM5450 do wysterowania wyświetlacza LED 5 na...
https://obrazki.elektroda.pl/6710486900_... Każdy, kto zaczyna swoją przygodę z Arduino, zwykle na samym początku staje przed dylematem w jaki sposób prosto i przejrzyście zarządzać zadaniami, które uruchamiane powinny być w określonych i najczęściej różnych interwałach czasowych. Jest to problem tzw. harmonogramowania zadań. W niniejszym...
https://obrazki.elektroda.pl/9471865900_... Projektowanie i budowanie praktycznych układów zawsze wiąże się z jednym problemem, jakim jest kwestia zasilania. Jest to kwestia istotna już na etapie tworzenia koncepcji układu, gdyż jego przeznaczenie dyktuje, czym będzie zasilany, a także z jakich konkretnych rozwiązań układowych skorzystamy....
https://obrazki.elektroda.pl/2189373200_... Byłem strasznie ciekaw, jak wypadnie kolejny gadżet, jaki chciałem przedstawić, a mianowicie "AIYIMA Mini Dual 12 wskaźnik poziomu VU miernik wzmacniacz Stereo" (dalszą część nazwy z oferty pozwoliłem sobie pominąć). Po wcześniejszym "analizerze widma sygnału audio" podchodziłem dość sceptycznie...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
https://obrazki.elektroda.pl/8368409700_... Celem projektu było stworzenie amatorskiego programowalnego sterownika logicznego. Motywacją do stworzenia tego sterownika była potrzeba posiadania uniwersalnego urządzenia pozwalającego w warunkach laboratoryjnych na szybkie przetestowanie różnych algorytmów sterowania przy przebiegach szybkozmiennych....
http://obrazki.elektroda.pl/2126980700_1... System monitorowania środowiska, oparty o interfejs LoRa IoT składa się z stacji bazowej zbudowanej z wykorzystaniem modułu Arduino Mega z bramką LoRa oraz zdalnych stacji opartych na Arduino Feather, które łączą się z stacją bazową poprzez radiowy interfejs LoRa. System pozwala na monitorowanie...
Dziś skończył mi się toner startowy, więc rozpakowałem zakupiony 2 lata temu zestaw: zasypka 100g (3500-4500 stron) + chip (1200 stron). Okazało się, że resetowanie, czy wymiana chipa na nowy nie jest konieczna. Wystarczy uzupełnić toner, a następnie wejść w tryb serwisowy programu "Smart Organizing Monitor". W oknie "Service Mode", między rozwijalnymi...
https://obrazki.elektroda.pl/8287704400_... Witajcie moi drodzy Przedstawię tutaj mój projekt zewnętrznego wyświetlacza temperatury procesora z komputera. Wyświetlacz pokazuje temperatury od 0 do 99C, jednocześnie odpowiednio dobierając swój kolor. Wyświetlacz zrobiony jest samodzielnie od 0 w oparciu o diody WS2812B, sterowany jest...
GNU GENERAL PUBLIC LICENSE Wersja 2, czerwiec 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Każdemu wolno kopiować i rozpowszechniać dosłowne kopie tego dokumentu licencyjnego, ale nie wolno go zmieniać. Wstęp Licencje większości oprogramowania mają na celu odebranie wolności udostępniania i zmieniania...
Wraz z szybkim rozwojem systemów wbudowanych, a zwłaszcza urządzeń Internetu Rzeczy (IoT), rośnie zapotrzebowanie na ulepszenia systemów akumulatorowych, które je zasilają. W szczególności wiele aplikacji może zyskać na opłacalnym, ale dokładnym mierniku poziomu naładowania akumulatora. Podczas gdy większość zastosowań ogniw w motoryzacji, medycynie...
Niedawno zrobiłem mały egzamin tej 'inteligencji', marnie wypadła ze znajomości avrów ;) (nie można zagnieździć bold w code, więc będzie rozlazłe) procesor avr ze stosem sprzetowym ChatGPT Procesory AVR, takie jak te z rodziny ATmega, są wyposażone w stos sprzętowy, który jest używany do zarządzania wywołaniami funkcji, przerwami oraz przechowywaniem...
Prezentowane urządzenie jest prywatną konstrukcją użytkownika forum i nie ma nic wspólnego z wyrobami firmy, którą reprezentuje w podpisie. Witam, Chcę przedstawić Wam swój domowy sprzęt audio, którego używam obecnie i który powstawał przez ostatnie kilka lat. W tym wątku będzie to procesor dsp. Linki do pozostałych sprzętów znajdują się na dole posta....
Podaj kod w Avr gcc jak odczytać wolną pamięć w czasie pracy programu Odczytywanie dostępnej (wolnej) pamięci RAM w czasie pracy programu na mikrokontrolerach AVR może być przydatne do monitorowania wykorzystania zasobów, szczególnie w aplikacjach, które dynamicznie alokują pamięć lub wykonują zadania mogące intensywnie wykorzystywać pamięć. Jednak...
Ok teraz chyba rozumiem, czyli np: [syntax=c]void fun( uint16_t * zm ); fun( &zmienna_flash );[/syntax] tak by wyglądała deklaracja funkcji w której argumentem jest wskaźnik a niżej jej wywołanie w programie. Gdyby chodziło o tablicę w pamięci flash to np: [syntax=c]uint16_t tablica[] PROGMEM = {512,3,1333}; void fun( uint16_t * tb );[/syntax] a potem...
http://obrazki.elektroda.pl/1249211400_1... Tutaj umieściłem materiał o przetwornicy 400V do zasilania detektora Geigera Mullera: Licznik Geigera Mullera. Jest to druga wersja projektu prostego licznika impulsów oparty o mikrokontroler Atmel Attiny26L, współpracuje z przetwornicą do dozymetru opisaną http://obrazki.elektroda.pl/9686690400_1...
A jak sprawdzać wolną pamięć w czasie pracy programu na AVR, podaj przyklad kodu Dodano po 1 Cześć! Bardzo dobrze, że pytasz o monitorowanie wolnej pamięci w trakcie pracy programu na mikrokontrolerach AVR, ponieważ jest to ważny aspekt w projektowaniu stabilnych i efektywnych aplikacji. Istnieje kilka metod na sprawdzanie dostępnej pamięci RAM, ale...
Poprzedni mój przykład działa poprawnie pod warunkiem że cały jego tekst zawarty jest w jednym pliku głównym. Jeśli wywołanie funkcji piszącej do lcd nastąpi w innym pliku, to argument funkcji będący zarazem wskaźnikiem do tekstu flash nie zostanie rozpoznany. Obszedłem to poprzez zdefiniowanie W pliku nagłówkowym powinny być tylko deklaracje, zazwyczaj...
https://obrazki.elektroda.pl/5132775900_... Chociaż na zdjęciu widać mini płytkę z PIC18F1220, to posłuży ona jedynie do praktycznego zaprezentowania obsługi wątków które zaimplementowałem. Obecne możliwości kodu który chce zaprezentować, to działanie równoległe 2 lub trzech wątków, w tym głównej funkcji main która jest pierwszym wątkiem....
Witam wszystkich! Jak stworzyć dynamicznie obiekt reprezentowany przez wskaźnik na tenże obiekt? Sedno problemu polega na tym, że mam klasę. Zdefiniowany wskaźnik na obiekt tej klasy zainicjowany wartością NULL. W trakcie życia programu chcę w pewnym momencie powołać do życia obiekt, wykorzystać, po czym zniszczyć. Nie chcę marnować pamięci (a na razie...
Ale PSTR to w istocie wskaźnik do c-stringa w pamięci programu a nie żadna deklaracja zmiennej. Zobacz sobie tutaj: http://www.avrfreaks.net/index.php?name=... Poza tym, Twój zapis "keyPad((const char*)"Jakis tekst"), zmiennaTypuString);" utworzy "Jakis tekst" w RAMie rezerwując dla niego pamięć a funkcja oczekuje wskaźnika...
Witam, Piszę program i napotkałem na następujący problem: Warning133initialization from incompatible pointer type [enabled by default]... Warning134unused variable 'Wskaznik' [-Wunused-variable]... Próbowałem już wszystkiego stąd prośba do Was o pomoc. Dziękuję i pozdrawiam. Dodano po 1 Witam, Udało mi się chyba rozwiązać problem - może...
stała pamięci programu uszkodzenie programu pamięci zabezpieczenie pamięci programu
niska wydajność klimatyzacji napęd uchylnej bramy garażowej sprzedam metalową obudowę
licznik auris sprężarka inwertorowa
Szuflada napędu optycznego sama się otwiera i nie zamyka Frugal impulse reset - technika resetowania układów elektronicznych