Bo edytujesz rejestr moder (pierwszy rejestr GPIO). Zamiast się męczyć skorzystaj z makra Freddiego.
Nie znam przykładów Freddiego ale poszukam. Dzięki za wyjaśnienie ogólnie wolę makra chyba że rejestr jest pusty w miarę.
Nie używam ich z wyboru, ale staram się coś zrobić modyfikując przykłady dołączone do STM32F4Discovery, a one wszystkie bazują na tych bibliotekach. Chciałem wykorzystać Audio_Playback_and_Record, powycinać niepotrzebne rzeczy, poprzenosić itd... Ale chyba masz rację. Te przyklady zawierają masę plików w wielu miejscach i taka zabawa rodzi więcej problemów...
Witam, niestety muszę prosić o pomoc u podstaw, bo poległem. Problem jest taki: chciałem skompilować testowy program za pomocą arm-none-eabi-gcc z biblioteką CMSIS, bez żadnych eclipse, bez żadnych płytek rozwojowych - po prostu dioda podłączona do wyjścia procesora. Biblioteka chyba nie przewiduje bycia używanym przez arm-none-eabi-gcc więc: 1. utworzyłęm...
Zastąpienie struktury tabelą daje pożądany rezultat, ale nie wiem, czy Freddiego to usatysfakcjonuje. No właśnie niebardzo Być może wynika to z faktu, iż w C++ struktura jest rodzajem klasy. Generowany kod jest swego rodzaju konstruktorem globalnym. Też o tym właśnie myślałem Vee"]Nie do końca umiem wyjaśnić, dlaczego C++ różni się tutaj od C, ale...
Witam Fragment programu odtwarzający windowsowe 'tada' z tablicy tada_tab. Może pomoże. Kod bez biblioteki dlatego krótszy :D. [syntax=c] DAC->CR =DAC_CR_DMAEN2 | DAC_CR_EN1; DMA2_Channel3->CCR = DMA_CCR3_MINC | DMA_CCR3_DIR; // memory increment, dir from memory to dac DMA2_Channel3->CNDTR = TADA_NUM_ELEMENTS; // number of data to transfer DMA2_Channel3->CPAR...
Używam SPI2, na początku było SPI1 i tylko komentarz pozostał. Do konfiguracji używam makr i funkcji Freddiego. [syntax=c]void TouchGPIOInit(void) { /* Enable Clock */ RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN; /* PB13 - SPI1_SCK */ gpio_pin_cfg(GPIOB,13,GPIO_AF5_PP_50MHz_... /* PB12 - SPI1_NSS */ gpio_pin_cfg(GPIOB,12,GPIO_OUT_PP_50MHz_...
Druga sprawa to taktowanie a mianowicie przejrzałem dwie dokumentacje: swoją do L053R8 i do STM32F101xx i w drugiej jest taki rejestr do włączenia taktowania dla afio(Alternate function IO clock) i tutaj pewna wątpliwość, ponieważ w L053R8 nie ma takiego takiego rejestru są tylko odpowiedzialne za taktowanie danego pinu i chciałem zapytać co w takiej...
Da sie chyba Freddie. A takie coś nie zadziała: ? [syntax=c] #define LCD_RS_PIN 30 #define LCD_RS_PORT 0 #define LCD_RS_PORT_SET(port) temp_LCD_RS_PORT_SET(port) #define temp_LCD_RS_PORT_SET(port) FIO##port##SET #define RS_SET LCD_RS_PORT_SET( LCD_RS_PORT ) = (1 << LCD_RS_PIN) [/syntax]
Spróbuj nacisnąć Alt + F4. Chodzi oczywiście o lewy Alt. Dzięki za info, ale mi chodzi o to, żeby te makra włączyć przyciskiem, które uruchamiałoby kolejne makra i dlatego potrzebuję procedury, która będzie kolejno uruchamiać te makra
Jest. To zależy od biblioteki. Jak widać na screenach on używa innej niż Ty i w jego bibliotece tego makra nie ma. Dodano po 1 (at)jez2000 Załącz zawartość pliku stm32f4xx.h którego używasz.
Co do makr, to może trochę kwestia gustu, moim zdaniem chociaż do tych podstawowych elementów warto stworzyć proste makra. Ale dobra, spróbuję potrenować z tym sprzętem zobaczymy co z tego będzie. Póki co, dzięki za sugestie Freddie.
Wywołanie `portEND_SWITCHING_ISR()` _KOŃCZY_ przerwanie i powoduje powrót do głównego programu (*). Jeśli wiec obsługę przerwania dałeś "za" tym makrem, to przerwanie nie jest obsługiwane. W efekcie wywołuje się w nieskończoność. Hmmm nie bardzo rozumiem... "za" makrem ? U mnie to makro znajduje się na końcu funkcji obsługującej przerwanie, semafor...
Freddie Chopin -> to nie zmienna tylko sprawdzanie pinu :) Zapomnialem podać do niego makra w defie. Wyglada ono następująco: #define stop (PIND & ~_BV(2)) Takie makro jest bez sensu, czemu nie uzywasz symulatora zeby zobaczyc jak ci dziala kod? zamiast jakichs tam makr uzyj funkcji if (bit_is_clear(PIND, PD2)) {...
Freddie, jaki jest zysk dla zadającego pytanie z użycia operatora zamiast funkcji? A może użycie makro załatwiłoby sprawę? Pytam bo nie wiem, jak autor tych indeksowanych flag chce używać. Albert
sugeruje, że to może nawet nie być GCC ja pojrzewam wiedzę z jakiegoś poradnika i makro z dziwnymi atrybutami. bo iar i keil mają o ile pamiętam __irq a nie _irq.
(at)Freddie Chopin Wiem, są jeszcze ({}). Co nie zmienia faktu, że nadal to makro można napisać zgodnie ze standardem więc ostatnie nasze posty są bezcelowe. Czy może nie wierzysz i oczekujesz abym pokazał wersję zgodną ze standardem? :)
BoskiDialer i Freddie Chopin -> fakt - z tym mnożeniem rozumiem 1<<KHZ2MS(27) zgadnij co z tego wyjdzie? <: oj ciężko mi zgadnąć - nie mam zielonego pojęcia co to zrobi - jakieś przesunięcie bitowe? - nie , narazie to dla mnie czarna magia takie zagadki a tak na marginesie powiem tylko, że chodzi mi żeby tą wartość obliczył kompilator oczywiście...
1. To weź kilka tych makr PRI... i wpisz w google. Bez przesady. Ale mi nie chodzi o "PRI" ale o "_t". Do PRI mam to: http://www.dinkumware.com/manuals/?manua... ale mi trzeba do _t. 3. A co by miało się zmienić - na kod biblioteki nie masz wpływu, bo jest gotowy i skompilowany. Chodziło mi o to: 3. Wewnątrz funkcji zmienna...
Tak jak mowi Freddie Chopin, nie stosuj funkcji czy makr kompilatora tylko napisz swoje. TRISB1 = 1; i wszystko... co do przycisku to sprawdz czy piny z portu B nie są ustawione domyslnie jako wejscia analogowe... chociaż 628 chyba nie ma ADC. Czytaj dokumentacje układów tam sporo pisze.
Przecież napisał, że jak wpisze 0xFF to działa więc nie wiem w czym to pomaga. Taaa 0xff wyraznie pokazuje który pin został ustawiony Może motto przewodnie to tutaj "jeden program - jeden plik - jedna funkcja"? (; Komentarz był do tych 10 linijek. Nie wiem ale mi się nie chce rozdzilać 20 linijek na kilka plików, ale może to lenistwo. Ale oczywiscie...
Nie da się podejrzeć ADC1 itp. w expressions, ponieważ nie są to zmienne, tylko makra preprocesora. To dlaczego ja mogę? http://obrazki.elektroda.pl/8069181200_1...
W tym przykladzie potrzebujesz raczej atomowych operacji, a nie blokowania dostepu do zmiennych. Zwykle wylaczanie przerwan - w AVR-libc masz w tym celu makra ATOMIC_BLOCK jest wystarczajace. Freddie - jesli tak bardzo ci brakuje double to zainwestuj w komercyjny kompilator, ktory to obsluguje takze dla AVR, albo zrob cos dla ludzkosci i napisz to dla...
Coś czuje że częściej będzie to pisanie kodu "magicznego", czyli np. "jaka totalnie niezrozumiała operacja może zastąpić dzielenie" albo "jak użyć 8-bitowej liczby choć potrzebujemy 32-bitowej". Nie widzę w tym problemu, jeżeli zamkniemy tę magiczną operację w bibliotece/ funkcji/makro. Widziałem też magiczne kody w drugą stronę. Typu : jak w bajtowym...
Dlatego zamiast stosowac (1<<costam) lepiej zastosowac gotowe makra _BV(CS11) itd. Ja się chętnie dowiem, co takiego cudownego jest w tym makro, a co takiego beznadziejnego jest w standardowej rotacji? Potem gdy przyjdzie coś robić na innym układzie niż AVR, to pierwsze co jest na górze : #define _BV(x) (1<<x) bezsensu. 4\/3!! Wlasnie to...
Freddie - ciekaw jestem Twojego zdania na ten ostatni temat. No ale nad czym tu debatować? (; Programiści pracujący dla firmy ST od lat udowadniają nam, że nie znają się na tym co robią. Ewentualnie po prostu firma ST zatrudnia studentów. Moim ulubionym przykładem jest jednak całkowite ignorowanie tzw. const-correctness, przez co programy tworzone...
T Mhm... Najwidoczniej inaczej postrzegamy "pytania z tezą" typu "Doprawdy?". Róźny poziom sięcia :) Ja wiem że to działa - tylko napisałem że dla plików wygenerowanych przez Cube miałem taki przypadek. Podawanie przykładów nie Cube do dyskuji o Cube jest raczej bez sensu. Co jest w wygenerowanych plikach złego nie wiem bo nie używam. Autor napisał...
Freddie Chopin -> wiem wiem ;) ale zapewne po jakimś czasie mi to przejdzie. Chociaż z drugiej strony czemu nie korzystać z "mocy" tworzenia makr i polecenia #define. .... w końcu czegoś takiego jak _BV() też na początku nie było ;) dla mnie najważniejsze, że w końcu coś mi w tym C wychodzi i to, że C daje mi GIGANTYCZNE możliwości ;)
Freddie Chopin -> przykro mi ale też nie znalazłem jakiejś dobrej lektury w której dużo i z wieloma przykładami byłoby na ten temat. ale nie ma jak to czytanie wielu książek i z każdej po trochu, do tego internet i przykłady na żywo z programów plus dużo własnych prób i do czegoś się powoli dochodzi. Jak widzisz powyżej podałem fajny link do postu...
w każdej wersji funkcji USBD_..._Init() jest alokowana pamięć przy pomocy makra USBD_malloc(). Owszem. Ale to makro jest definiowane co najmniej na dwa sposoby, np. w konkretnych aplikacjach przykładowych z STM. Czyli widać jasno że problem znany ludziom z STM i sami panują jakoś nad tym. I też zauważ że wersja z wywołaniem malloc() jest tak właściwie...
Nie masz "dopiętych" funkcji FreeRTOSa pod trzy przerwania systemowe. Cały temat powyżej jest praktycznie tylko o tym... 4\/3!! Jeśli chodzi o te definicję w pliku FreeRTOSConfig.h to mam je tam umieszczone [syntax=c] #define vPortSVCHandler SVCall_IRQn #define xPortPendSVHandler PendSV_IRQn #define xPortSysTickHandler SysTick_IRQn [/syntax] Niestety...
Tak tak - używam zawsze ctrl'a do podglądnięcia makra. Ale mój problem z tego co widzę rozbija się o nagłówek. Znajdź sobie plik stm32f407xx.h, a w nim masz np.: (at)Freddie Chopin podał mi bibliotekę stm32f407xx.h, ale u mnie w projekcie wszystkie są opisane w taki sposób: stm32f4xx.h. (brak 07). Dodam jedynie że w projekcie zawsze wybieram płytkę...
Ale żeście się przyczepili... 1. to nie jest wersja końcowa tylko roboczo zawsze sobie ustawiam w ten sposób bit po bicie, żeby obrazowo widzieć co i jak,wygodniej się z noty przepisuje (a fragmenty funcji to kopiuj/wklej ze wcześniejszych moich gotowców, szybciej idzie, pewnie robicie tak samo). 2. mirku, fajnie jest tak jak piszesz ale w dowolnym...
A przedewszystkim te "te same nazwy" to co dokładnie? Funkcje? Zmienne? Makra? Enumy? Typy? Na pewno definicje, na pewno część funkcji, i wiele typów.. Chodzi generalnie o biblioteki obsługi modbus'a slave oraz master'a. Obie pisane są przez jedną osobę/firmę ale nie są kompatybilne na tyle aby można było korzystać z ich obu w jednym projekcie. Nawet...
Stary MX (projekty wygenerowane z rok temu) - kod inicjalizujący działa, nowy - nie działa. Fajne. Dodano po 13 Jak by ktoś miał problem to paczce do F3x jest mały bład w #define USBD_malloc (uint32_t *)0 Należy sobie jakiś coś statycznego podstawić (nie zapominając o tym że może tych buforów być więcej). Kolega (at)Freddie Chopin miał w tym makrze...
No dobra. Coś mam. Nie udało się tego zrobić na STM32CubeIDE, ponieważ wejście do opcji projektu (prawym na projekt > Properties ) a następnie do istotnych C/C++ General > Preprocessor Include Paths, Macros etc. powoduje u mnie pojawienie się okienka z błędem że "The currently displayed page contains invalid values" i tyle mogę sobie tam pozmieniać......
dodane. swoja droga... ladne zestawienie. ja juz pojde moze, bo nie ma sie z czym pokazywac przy takim zestawieniu. drobne pytanko - ile lat juz 'w tym' siedzisz? 0x41 0x56 0x45!! Z grubsza od początku mikroprocesorów w Łodzi, czyli jakiś 84-85 rok (?). Wcześniej się tylko o tym słyszało. Kawał czasu ;) Miałem szansę obejrzeć w tym czasie sporo sprzętu...
Czy jest urządzenie, które wymagałoby opóźnienia o 32142ms z dokładnością do 10us? 4\/3!! Nie wiadomo, może za pomocą takich opóźnień autor będzie chciał co 4 lata w dokładnej µs wyświetlić informację o tym, że jest rok przestępny ? Chłopaku, zmień kod, tak, żeby był w syntaxie - trochę wygodniej się go czyta. Po każdym wysłaniu komendy powinieneś...
kogiel napisał: (at)Freddie Chopin ja rozumiem, że to są zupełnie inne procesory (czytałem to już dziesiątki razy), ale w obu przypadkach robimy to samo czyli ustawiamy push-pull i OUT Nie rozumiesz. kogiel napisał: Nie rozumiałem jedynie tego, dlaczego są różne zapisy dla innych procków Ponieważ: Freddie Chopin napisał: Po prostu w tych układach (F1,...
Popatrz na tę linijkę: if (LED_bb_B = 1) Prawdopodobnie tu jest blad, oczywiscie ma byc "==", sprawdze dopiero jutro bo nie mam teraz dostepu do plytki i dam znac. Te makra są tak zrobione, że nie mogą dotyczyć tej samej połówki portu, bo nowa wartość całkowicie zastępuje starą. Jeśli u Ciebie jest taka sytuacja (ta sama połówka tego samego...
Chodzi mi tylko o to żeby w przyszłości móc wykorzystywać bit banding, bo dopiero zaczynam przygodę z STM32. Dodano po 6 Właściwie problem rozwiązałem. Zastosowałem makro Freddie Chopin z tematu https://www.elektroda.pl/rtvforum/viewto... i wszystko działa dobrze ;) Dodano po 37 Nie potrzebujesz tego - po prostu wyrzuć. zresztą...
Trochę mnie kolega (at)Freddie Chopin zaintrygowął tymi przesuniętymi otworami i kiepskimi opisami, więc poniżej przykład ostatnio zamówionej płytki z allpcb. Zdjęcie robione w trybie makro z obiektywem blisko płytki, zatem miarodajny jest środek płytki bo wiadomo jak sie zachowuje szkło niezbyt profesjonalnego obiektywu przy brzegach fotki. Ja nie...
jak na przykład ujednolicenie inicjalizacji, co pozwala zainicjalizować kontenery STL (listy, wektory, ...) tak jak tablicę czy strukturę w C Też mi się to strasznie podoba a część standardu jest już zaimplementowana w nowym gcc, ale wg twórców na razie trzeba uważać: Important: GCC's support for C++11 is still experimental. Some features were implemented...
to jakis bug, wg kompilatora caly czas jest zle... To nie jest bug, ten typ tak ma. W podanym wyżej przypadku nie ma 100% teoretycznej gwarancji na dobry bank, bo jest więcej niż jeden bit wyboru banku. Przy czym po resecie jest zawsze zagwarantowane wyzerowanie bitów więc z drugiej strony kod zadziała. A co do kompilatora to jest to tylko message...
Przede wszystkim musisz wiedzeć jakiego typu to HF bo adresy mogą być nieprecyzyjne. Sprawdzam, co jest przydatne - x/0; daje "undefined operation" a nie "div by zero" Zreszta IMO zamiast się katować w 21 wieku jakimiś logami użyj do jako IDE czegoś co zrobi to za Ciebie To do diagnostyki "w polu" Dosyć sprawnie działający kod do debuggowania HFa:...
Również natknąłem się na ten problem i nie wiem jak go rozwiązać. Niemniej jednak można makro EEMEM zastąpić tym czym jest naprawdę ( __attribute__((section(".eeprom"))) ) i wtedy ten problem nie występuje. 4\/3!! jak coś ;) to ja już wiem jak ten problem rozwiązać - może komuś się przyda Otóż w owym czasie korzystałem z Eclipse ganymade w wersji 3.4.1...
Szkoda słów. Dziś ST pobiło rekord świata w dotychczasowej twórczości. Jakieś szczegóły? <: Wcześniej. w plikach nagłówkowych dodali rzutowanie na (uint32_t) potem dodali rzutowanie preprocesora U. Bo MISRA. Teraz rzutowanie na uinta usunęli. Za to dodali makra typu xx_msk xxx_pos. W dodatku w jednym z plików do L0 o tym zapomnieli. Słynna przenośność...
tymon_x - Ty masz te funkcje read(), write() itd tylko dla SPI czy ta sama funkcja robi też coś innego? Jeśli to są "typowe" funkcje open(), read(), write() to jak zmapowałeś struct spi na "int fd"? 4\/3!! Wracając do tego, łatwo to można przerobić, żeby ta metoda była bardziej system-like :) Mi przychodzi tablica, który int fd wskazywał by odpowiednią...
Bardzo ważne info - memcpy() jest specjalną funkcją. Kompilatory wiedzą co ona robi i zwykle jeśli np. wywoła się memcpy() dla jednego czy kilku bajtów (które są odpowiednio wyrównane!), to kompilator sam to "zoptymalizuje" i przekopiuje sobie co trzeba "ręcznie", bez wywoływania funkcji. To taka uwaga jakby ktoś chciał napisać, że "to na pewno mniej...
Albo np. te struktury inicjalizacyjne - nie zastanawiałeś się nigdy, dlaczego one zawsze są na stosie albo jako globalne zmienne, choć realnie mogłyby być stałe i "const"? No właśnie... https://github.com/marcinszajner/Driver/... Używanie "instancji" co jest w sumie dziwnym mechanizmem ale nawet sprawnym, powoduje...
Jejku... to 99,999 nie odnosi się do perfekcyjności programu, tylko możliwości znalezienia błędu. Jak mówi prawo Murphiego "w programie zawsze jest jeszcze jeden błąd". Ale ten szacunek jest wyssany z palca. Załóżmy, że robisz wektory testowe dla funkcji. Jak pisał kol. (at)Freddie Chopin masz jako wejście dwa floaty. Czyli liczba kombinacji 2^64,...
1. Czy powyższy przykład z atrybutem dla konkretnej zmiennej da się rozciągnąć na szerszy zakres na zasadzie "od tego miejsca do odwołania"? Raczej nie, ale jeśli nie chce Ci się dużo pisać, to po prostu możesz sobie zdefiniować stosowne makro #define. Myślałem, że jest jakiś odpowiednik "#pragma GCC optimize ("")" dla zmiennych. No trudno, jakoś sobie...
na koncu linii postaw backslasha - to poinformuje kompilator, ze jest to wieloliniowe 'cos' Backslash ma znaczenie tylko tam, gdzie znak końca linii jest interpretowany przez kompilator inaczej niż spacja, czyli w deklaracji makr i w napisach. Więc tutaj nie ma sensu i nic nie zmieni. :arrow: char Menu23[1][8][23]... {...
Np.: skąd wziołeś coś takiego? Napisałem, przecież to zwyczajne makro... Chodzi mi tutaj o jakiś opis zmiennych i funkcji do zarządania mikrokontrolerem. Ale nie ma żadnych zmiennych i funkcji do zarządzania mikrokontrolerem - C to C i tyle. 4\/3!! Mam rozumieć, że wystarczy zdefiniować coś takiego: :#define LED_GPIO GPIOB ///< GPIO port to...
C jako taki nie był projektowany głównie dla mikrokontrolerów, więc operacje na bitach należy dokonywać używając przesunięć, iloczynu logicznego, sumy oraz ewentualnie if'ów. Przesunięcia mogą być kosztowne (brak barrel shift), chociaż dobrze napisane przeniesienie da się zoptymalizować do 3 instrukcji (skasowanie bitu, pominięcie jeśli bit źródłowy...
Pewnie dlatego, ze wczesniej programowałem (AVRy) pod Eclipse, a CooCox to w sumei Eclipse jest. Coocoxa kiedyś używałem, ale odniosłem wrażenie że nie nadąża za trendami w STM32. Jeśli nie czujesz się jakoś specjalnie przywiązany do (schyłkowego) SPL (np. dorobek własny), to ośmielę się zasugerować System Workbench for STM32 także na Eclipse i używanie...
The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming. https://en.wikiquote.org/wiki/Donald_Knu... Zdziwiłbyś się jakie cuda potrafi zrobić kompilator którego używasz np. z normalnymi...
Możesz Freddie mieć trochę racji. Muszę to sprawdzić. Co prawda w tym konkretnym przerwaniu od I2C jest tak, że w/w bit ustawiam tuż przed wywołaniem warunku startu I2C, a kasowany jest on wyłącznie w procedurze obsługi I2C, podczas której wyłączam inne przerwania, więc chyba nie ma możliwości jego modyfikacji przez inne przerwanie. Ale ten bit należy...
Makr używam również do inicjalizacji skomplikowanych struktur. Przykładowo: ... Może nie wczytywałem się zbyt dokładnie, ale jestem prawie pewny, że ten kod można by zastąpić (osoby o słabszych nerwach proszone są o nie czytanie dalszej części) polimorficznymi klasami (aby mieć interfejs) i szablonami (aby mieć statyczne bufory). Tamten przykład aż...
20mA przy zwarciu dowolnego wyjscia do masy (spadek z 5V do 0). _____________________________________ otrzymalem wlasnie wiadomosc od supportu FTDI, ze przy uzyciu pinu PWREN mozna sterowac dioda... wczoraj nawet to przetestowalem i w istocie - dioda swieci, ale... napiecie na pinie z 0V wzrasta do ok 1.4V (prad rzedu 1mA), wiec spytalem jeszcze czy...
Dzięki Freddie Chopin za szybką odpowiedz. Sprawdziłem w debagerze czy po zejściu licznika (wartość CNDTR) do zera wyłącza się kanał DMA. Okazuj się iż jest nadal włączony. Twój kod zbyt wiele mi nie pomógł, wcześniej tez go spotkałem w innym temacie na forum. Na początku chcę przesyłać jeden bajt cyklicznie(czyli po każdym wywołaniu zdarzenia TXE),...
Wszystko spoko, tylko żeby pobrać ADRES to musisz... pobrać adres (; #define PIOA_ODSR PIOA->PIO_ODSR Po tej operacji Twoje makro jest swoistym "aliasem" na wskazywaną wartość, ale NIE JEST adresem. Powinno być: #define PIOA_ODSR &PIOA->PIO_ODSR Jak już przy tym jesteśmy to wrzucam nowszą rewizję mojego nagłówka hdr_bitband.h rajszym a też...
Konfiguracja FSMC Dodano po 2 Chyba sam znalazłem rozwiązanie: FSMC_BCR1->WREN = 1
Makra takie: /* Flash Control Register bits */ #define CR_PG_Set ((uint32_t)0x00000001) #define CR_PG_Reset ((uint32_t)0x00001FFE) #define CR_PER_Set ((uint32_t)0x00000002) #define CR_PER_Reset ((uint32_t)0x00001FFD) #define CR_MER_Set ((uint32_t)0x00000004) #define CR_MER_Reset ((uint32_t)0x00001FFB) #define CR_OPTPG_Set ((uint32_t)0x00000010) #define...
freddiego chopina makra uruchamiające makra blokowanie makra
uszkodzona grzałka kuchenki bezpośrednia synteza kondensator mniejszy zasilacz
sterownik zaworu proporcjonalnego sterownik zaworu mieszajacego
Regulacja progu startu grzania w przepływowych ogrzewaczach wody – Stiebel-Eltron, Kospel, czujniki przepływu Jak odblokować ruszt w piecu Defro?