ale teraz się zastanawiam (stąd ten post ) czy goście z CodeSourcery nie zrobili tego memcpy na DMA, bo czas kopiowania jest bardzo krótki. Nie zrobili, nie wszystkie uC maja DMA, poza tym kompilator nie ingeruje w żadne peryferia.
Witam Czy obsługa przerwań STM32F1 od UARTa nie koliduje z jednoczesnym zapisem do pamięci flash mikrokontrolera (czy podczas zapisu do pamięci flash nie są blokowane przerwania) ?
Nie ma to jak stworzyć sobie problem a potem dziwaczne metody rozwiązania. Trochę programów na Cortexy napisałem, i nigdy nie miałem potrzeby zapamiętywania stanu przerwań przy ich chwilowym blokowaniu, i samo blokowanie bardzo rzadko jest potrzebne. Nie znaczy to oczywiście, że taka potrzeba w ogóle nie występuje, ale poza bebechami RTOS występuje...
1.Tworzysz Mutexa żeby tylko jeden task miał dostęp do interfejsu SPI I2C ... 2. Tworzysz semafor na dany interfejs. 3. Tworzysz driver do obsługi interfejsu, najlepiej z obsługa przerwań od tego interfejsu. 1. Blokujesz dostęp do interfejsu mutexem 2. Zlecasz driverowi co gdzie ma wysłać lub skąd odebrać. Driver w tym czasie blokuje semafor aż do wykonania...
W STM32 domyślnie podczas zatrzymania rdzenia timery pracują, więc podczas twojej pracy krokowej zgłaszane są setki kolejnych przerwań. Aby to zwalczyć należy w rejestrze DBGMCU->CR (w manualu DBGMCU_CR) zapalić stosowny bit dotyczący stosownego timera. Niestety nie zawsze jest to możliwe (bo aplikacja może wymagać aby timer naprawdę stale pracował...
Po co ci ta sekcja krytyczna w EXTI9_5_IRQHandler ? Czy jeszcze jakies przerwanie korzysta ze zmiennych ktore chcesz chronic ? Jesli jest faktycznie potrzebna )w co watpie) to obliczaj pierwiastek poza nia, skopiuj wynik do zmiennej lokalnej i dopiero w sekcji krytycznej przekopiuj zmienna lokalna do globalnej. Nieliniowe funkcje biblioteczne potrafia...
To jest parametr konfiguracyjny systemu - chyba wciąż 1 milisekunda (kiedyś było 10 milisekund). Szukaj w źródłach systemu. A może nałożyć się parę blokad przerwań, będzie dłużej. Na Arduino nie ma systemu, który by blokował przerwania, wszystko jest pod kontrolą programisty, przerwań są po kilka mikrosekund. A STM32 obsłuży parę przerwań w mikrosekundę....
Zawsze można po przerwaniu DMA odpalić timer i poczekać na jego przerwanie i tam przestawić stan linii, to rozwiązanie ma taką przewagę nad delayem, że nie blokuje programu.
Musisz też przenieść kod który jest wtedy wykonywany (a więc odczyt flagi BSY) do RAMu, bo przecież dowolny odczyt flasha blokuje rdzeń. Innymi słowy - kod kasowania/programowania też musi być w RAM... 4\/3!!
Idea generalnie jest prosta - jeśli po wystąpieniu przerwania będziesz chciał zrobić coś co trwa "długo", to nie robisz tego w przerwaniu, bo blokujesz tym cały program - wtedy stosujesz polling flagi programowej lub sprzętowej. Jeśli chcesz zrobić coś co trwa "krótko" lub jeśli chcesz zrobić coś co musi być zrobione "natychmiast" po wystąpieniu przerwania...
Dzięki. Dodam, że problem się rozwiązał (task się nie zawiesza) po dodaniu na koniec pętli vButtonTask: [syntax=c]vTaskDelay(500)[/syntax] Niestety nie rozumiem dlaczego to zaczęło działać. Miałem intencję, by to opóźnienie zablokowało ButtonTask na pół sekundy, tak aby przez pół sekundy nie reagował na przycisk (problem pojawiał się przy zbyt częstym...
1. Priority mogę ustawić jak chcę? Generalnie tak. Zastosowałem mechanizm znany z innych RTOSów, czyli część priorytetów przerwań (niższych) może korzystać z funkcji systemu, a część priorytetów (wyższych) nie może. Ta druga część nigdy nie jest blokowana, ta pierwsza zaś jest blokowana w czasie większości operacji typu operacje na mutexach, kolejkach,...
przerwanie powinno być z atrybutem ((interrupt)), a próby wpisywania wartości 0xFFFE do rejestru SR nie wydają mi się szczególnie mądre. W końcu rejestr ten ma kilka pól które są "reserved" więc nikt nie wie co robią, a poza tym ST pewnie zapomniało napisać, że jakieś tam bity można jednak pomieszać wpisując do rejestru jedynkę - nic nowego, w produktach...
Niebardzo - STM32 jest bardzo bezproblemowy w debuggowaniu, więc nie tutaj szukałbym problemu. Może podczas debuggowania (ze względu na nieco inne "okoliczności") nie wyskakują Ci errory, które w normalnych warunkach się pojawiają i blokują transmisję? Sprawdź, czy nie są poustawiane flagi od błędów w rejestrach SR. 4\/3!!
Z Erraty: "po wejściu do handlera wyjątku (np. ISR) wyjątki (w szczególności przerwania) nie są blokowane jak w AVR" No to akurat nie jest prawdą. Przerwania są blokowane dokładnie tak samo, jak w AVR, czyli blokowane są przerwania o priorytetach nie wyższych niż bieżący. AVR ma tylko dwa poziomy priorytetowe (wątku i przerwania), więc wszystkie przerwania...
Następnie Ty zerujesz bit ACK i bit Stop powodując zawieszenie się magistrali. Ogarnij się.... Czyli ten fragment kodu jest błędny ? Jest w 100% poprawny.... Tak naprawdę jest to żądanie STOPU a nie jego wygenerowanie. Przed tym warunkiem ostatniego bajtu masz odczyt z DR oznacza to, że JUŻ TRWA odbiór ostatniego bajtu, po którym zostanie wygenerowany...
SysTimer jest wykorzystywany w FreeRTOS jako zegar systemowy. Ale jeżeli potrzebujesz timera(dla zliczania czasu będącego wielokrotnością zegara systemowego) dla jakiejs innej biblioteki możesz wykorzystać vApplicationTickHook(), gdy tylko masz symbol configUSE_TICK_HOOK zdefiniowany na 1 (plik FreeRTOSConfig.h). Funkcja ta jest wywoływana w przerwaniu...
Dzięki Freddie! Po odblokowaniu __USES_CXX i pobraniu syscalls kontenery działają jak należy. Mam jednak jeszcze jedno male pytanko: chcialem użyć standardowej kolejki FIFO (std::queue) do której w main-e wrzucam jakaś wartość natomiast w przerwaniu ta wartość odczytuje. W którymś ze swoich postów pisałeś ze dynamiczna alokacja pamięci w przerwaniach...
Tzn. nie atomowe było by przepisywanie po jednym bicie, a nie sama pojedyncza operacja "BITBAND(&GPIOA->ODR, 5) ^= 1;" ? Najpierw musi odcztać ten bit, potem zxorować a następnie zapisać. Pomimo tego że zapisałeś to w C w jednej operacji nie oznacza to że tak to będzie zrealizowane w programie. Czyli operacja or, z bit bandingiem: "BITBAND(&GPIOA->ODR,...
Witam, walczę z mikrokontrolerem STM32F051K8T6. Urządzonko, które buduję, to system mierzący odległość na podstawie odstrojenia generatora LC - zbieram częstotliwość i amplitudę. Częstotliwość jest mierzona przez TIM2, na który wchodzą impulsy, a TIM6 co 20ms odczytuje jego zawartość i zeruje. Amplituda - wiadomo, przetwornik A/C. Z tablicy 50 próbek...
Witam, Panowie, konkretne pytanie: Czy opłaca się stosować kopiowanie pamięci przy użyciu DMA zamiast memcpy? System jest wielowątkowy na FreeRTOS. Mam bardzo dużo kopiowania pamięci średnio po 15 bajtów. Wątek mógłby wstrzymać pracę i czekać na semafor z przerwania. Czy to sie jednak opłaca wydajnościowo? Przy okazji: Czy da się zmusić kompilator,...
Nie trzeba ich wcale wywoływać z przerwania. Wystarczy wszystkie funkcje USB wywoływać z bloku kodu w którym jest zablokowane przerwanie od USB (albo zmodyfikować te funkcje tak aby blokowały przerwanie na czas swojego wykonania). Problem w istocie teoretycznie występuje, niemniej jednak nie jest aż tak dramatyczny jak to maluje BlueDraco - jeśli byś...
Mogę lekko odskoczyć od tematu i zapytać o przerwania ogólnie? Tak sobie czytam i czytam na ten temat i coraz mniej rozumiem. Mamy np przerwanie od Timera np przepełnienie, musimy je ustawić, odblokować. Ale dlaczego jest jest jeszcze NVIC? Tu tez trzeba odblokować przerwanie. Rozumiem że NVIC odpowiada za priorytety przerwań, ale dlaczego za ich blokowanie...
Mam problem z generowaniem paczek impulsów o częstotliwości około 20-30kHz. Potrzebuje np. wygenerować dokładnie 300 impulsów w takiej paczce. Ocz nie mogę blokować procesora, bo w tym czasie dzieje się dużo innych rzeczy. Jedyne co przychodzi mi do głowy to połączenie dwóch timerów, gdzie jeden wyznaczy dokładny czas ile ten drugi będzie generował...
Mam przerwanie od odbioru po UARCIE, w którym mam instrukcje NVIC_SystemLPConfig(NVIC_LP_SLEEPONEXIT, ENABLE) i ta instrukcją usypiam procesor (wiem że się usypia, ponieważ w pętli głównej migam diodą, która przestaje migać). Faktem jest to, że przerwanie o wyższym priorytecie budzi procesor, w przerwaniu które budzi procesor, należy użyć jeszcze instrukcji...
Poprawiłem kod: [syntax=cpp] void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1,USART_IT_RXN... sie gdy bufor odbiorczy nie jest pusty { RxBuf[i++] = USART_ReceiveData(USART1); if(i>7){ //USART1->CR1&=~(1<<2);// Odbiornik wylaczony USART1->CR1&=~(1<<5);//blok... przerwania odbioru i=0; j=0; for(l=0;l<=7;l++)...
Z przerwaniami chodzi o to, że przy kopiowaniu nie blokujesz w ogóle procesora pętlą while, tylko robisz sobie coś innego i czekasz na przerwanie, żeby obsłużyć zdarzenie końca kopiowania bufora. Co do kopiowania tylko raz - wtedy w takim przerwaniu blokujesz kanał, a jak chcesz kopiować znowu, to gdzieś go sobie odblokowujesz. DMA nie kasuje rejestrów...
Witam Przymierzam się do portowania FreeModbus na STM32 i mam kilka problemów wynikających z wymagań. Platform specifics (port.h) You should first check the file port.h and check the if the examples are already suitable for your platform. You must at least define the macros for enabling ENTER_CRITICAL_SECTION and disabling EXIT_CRITICAL_SECTION interrupts....
Może naprostuje o co mi chodziło z tym semaforem. Otóż na porcie stm32(nie wiem jak inne) gdy utworzymy semafor(SemaphoreCreateBinary) to pierwsze wywołanie SemaphoreTake zwraca pdTRUE. Czyli semafor jest odrazu ustawiony, nawet jeżeli w kodzie nie została wywołana funkcja SemaphoreGive. Ominąć to można w prosty sposób, mianowicie odrazu po utworzeniu...
Jak w xQueueSend ustawisz xTicksToWait na 0 oznacza to tylko, że funkcja nie będzie blokowała tego zadania. W twoim przypadku funkcja xQueueSend może zwrócić pdFALSE w przypadku jak kolejka będzie zapełniona. Jak dasz xTicksToWait portMAX_DELAY to masz pewność że się wyśle. Oczywiście nie będziesz miał tego problemu gdy zadanie od LCD będzie miało wyższy...
No to się nie zrozumieliśmy! Wydawało mi się że chodzi ci o fizyczne-namacalne linie, których w VCP brak! Wiele aplikacji USB-CDC funkcjonuje jako konwertery gdzie są. Oj ! :) A tak na marginesie!. Czy napisałem że "olewam" przerwania? Gdybym je ignorował to akurat nie byłoby problemów z lagowaniem main. Core USB (od ST) jest nietknięty i nikt mu niczego...
Witam! Raczkuje z stm32 i próbuje ustawić przerwanie od przycisku, które da jakiś efekt na wyświetlaczu 16x2 (np zmieni napis kiedy przycisk będzie przyciśnięty). Ustawiłem przerwanie od timera reagujące na stan wysoki i niski portu PB1 (TIM3_CH4) i port PD2, do którego podpiąłem diodę led, która miała by gasnąć i zapalać się po naciśnięciu lub puszczeniu...
A zająłeś najpierw semafor ? xSemaphoreTakeFromISR. Nie możesz zwolnić semafora jeśli go wcześniej nie zajmiesz. Niby oczywiste, ale z postu, który napisałeś wnioskuję dziwne rzeczy Semafor jest zajmowany dwa razy. Raz po stworzeniu bez blokowania, drugi raz w miejscu gdzie wątek ma czekać na przerwanie. Dla STM32 configPRIO_BITS jest równe 4. U siebie...
Jeśli o odbieranie chodzi to już znalazłem winnego. W tle cały czas chodzi ADC. Jest puszczone na kanale DMA ale jak widać nie przeszkadza mu to w blokowaniu procesora. Jutro się pobawię z tym fantem. Nadal jednak nie wiem o cho chodzi z wysyłaniem. Ok, wysyłanie też naprawione, tylko w bardzo brzydki sposób. Dodałem po utworzeniu ramki for(i =...
IMO implementacje SPI na przerwaniach w przypadku SPI mają zerowy sens (jedynie jeżeli mamy problem z ilością RAM i liczymy każdy bajt ale wtedy można - a raczej trzeba się pogodzić z dużymi dziurami między paczkami). DMA w przypadku SPI jest dość łatwe do implementacji bo ilość danych wysłanych jest zawsze równa liści danych odebranych. Nie występują...
Dzięki za podpowiedź. Ostatecznie rozwiązałem problem nieco inaczej. W przerwaniu TIM7 wpisuję do TIM1->CCR1 wartość większą niż TIM1->ARR więc TIM1->CNT nie ma szans być równy z CCR1 i to wydłuża aktualne zbocze. Jednocześnie odblokowuję przerwanie od UIF dla TIM1 i przy przeładowaniu TIM1 w przerwaniu od UIF ustawiam TIM1->CCR1=0 i blokuję przerwania...
Ja się nie boję RTOSa i nie bronie się przed nim. Problemem jest natomiast ten aktualny projekt gdzie na początku wszystko było ok do zrobienia bez RTOSa po czym zmieniły się założenia jak byłem już pod koniec pisania softu i tu pojawił się problem pisać od nowa na RTOS czy stosując jakieś sztuczki starać się to już ogarnąć na tym co mam. (tonący brzytwy...
No to już Tobie odpisałem, nie musisz robić to przerwaniach, odpalasz timer , niech się kręci. Jak rozumiem Tobie jest potrzebne sprawdzenie czy dwa zbocza (narastające albo opadające) są w jakimś przedziale czasu | t_button_1 - t_button_2 | < t , co będzie świadczyło że zostało jakoś wciśnięte jednocześnie. Wystarczą dwie próbki z okresu większego...
Witam Zastanawiałem się ostatnio czy ktoś już przypadkiem nie wpadł na to, żeby napisać bootloader dla STM32 ale nie connectivity line? Przykładowo taki STM32F103ZET6, nie ma wbudowanego bootloadera który byłby w stanie zgrać program przez usb (chyba, że źle przeczytałem notę katalogową). Generalnie wymyśliłem sobie takie coś. 1. Uruchamiam urządzenie,...
Po pierwsze dziękuję wszystkim za pomoc. Działa, poniżej opisze jak do tego doszło:) Na początku dodałem: OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm"); OUTPUT_ARCH(arm); ENTRY(Reset_Handler); Plik hex sie tworzył i stm32 st-link utility się tym razem nie pluł że coś mu nie gra, ale w gruncie rzeczy ten plik nic nie zawierał. Potem...
Klepnąłęm kawałek kodu na STM32F0x dla obsługi transmisji uK=>PC. Jednak pojawił się dziwny objaw. Może ja nie widzę błędu.... Warto aby ktoś zerknął w ten kod: #define TBUF_SIZE_UART2 128 struct uart2_tx_buf_st { u16_t in; /* indeks zapisu */ u16_t out; /* indeks odczytu */ u16_t dat; /* licznik danych w buforze */ char buf [TBUF_SIZE_UART2];...
Hm w cubie pewnie jest, ale jakoś nie jestem w stanie tego przezwyciężyć. Poziomy abstrakcji są fajne ale zupełnie niepotrzebnie pożerają zasoby uC. Moje urządzenie z kodem keila oczywiście odnajduje USB natomiast ten sam kod "przystosowany" (zmiany polegały głównie na dopasowaniu do standardu gcc) na atollicu ten kod nie działa. Czy oby tylko linker...
Witam, Od pewnego czasu piszę moduł do komunikacji przez usarty, które łączą ze sobą dwa procesory (103ret6 i 103rbt6, co jednak nie ma znaczenia), połączenie pełne (tx->rx, rts->cts). Ze względu na możliwość występowania wielu innych przerwań oraz przy wymogu dużej przepływności przez usart zmuszony byłem zastosować komunikację z użyciem DMA, ale jednocześnie...
STM32 + FreeRTOS 7.1.0 + IRQ Siedze już dłuższą chwilą nad takim czymś. Mam zdefiniowaną kolejkę i zadanie: xQueueReceive definiuje po ilu taktach (czyli ms) zadanie ma przechodzić w stan ZABLOKOWANE. Co bym tam nie wpisał zadanie się nie blokuje i działa. Ilość znaków w kolejce się zgadza - po wyświetleniu ostatniego znaku z kolejki zwraca 0. Próbowałem...
-brak konieczności użycia kwarcu nawet przy projektach wymagających stabilności (RS232,RS485 a nawet USB) Ja na ATmegach nigdy nie musiałem kwarcu wpinać, mimo stosowania w systemie odpalającym UARTa i to w środowisku zakłóceń radiowych (proste moduły RF bez żadnych gadżetów podpięte pod UART, nie to co te nowe LORA itp.). Dodam tylko że system działał...
Kilka lat temu zaprojektowałem kilka urządzeń wykonanych raczej w pojedynczych sztukach. W tej chwili wracam do tematu i proszę o ocenę tych projektów i ew. sugestie. http://obrazki.elektroda.pl/7199154600_1... http://obrazki.elektroda.pl/6673535000_1... http://obrazki.elektroda.pl/9183671400_1... Generalnie...
Jak z dostępnością ADV7280? Kolega Piotrus_999 już napisał ze RPi Zero w sytuacji gdy chcesz użyć MIPI CS2 - taniej niż 5$ z taka ilością RAM nie będzie. Jest w Co do pytań - nie obraz się ale spróbuj przeczytać ze zrozumieniem dokumentacje bo inaczej nie zrobisz tego projektu. Przeczytam na razie staram się rozeznać, pracuję nad tym po 7 godzin dziennie,...
zdania doprowadzają do jedynej IMO słusznej konkluzji w tym wypadku: Arduino. Arduino to ślepa uliczka. W mojej ocenie, Arduino traktuje uC jak Z-8 (CPU + GPIO) czy 8051 gdzie ze sprzętu to głównie proste timery i UART. ZERO wykorzystania sprzętu! Bo co wspierają biblioteki Arduino? UART z malutkim buforem w RAM, I2C to samo. SPI bez bufora, bez przerwań....
Witam. Jestem zupełnie nowy w programowaniu STM32, korzystam z zestawu http://kamami.pl/index.php?ukey=product&... i uczę się według książki weń zawartej. Próbuję nawiązać komunikację między zestawem i komputerem z użyciem flag oraz wymienić przykładowe dane, lecz na razie brak sukcesu. Terminal (korzystam z aplikacji Terminal autorstwa...
w jednej atomowej operacji zmienić np z 011 (4) na 100(5). Niedopuszczalne są stany przejściowe 000 czy 111 Bez rozbicia tego na kilka instrukcji niestety się nie da. przecież z punktu widzenia wyjścia ta operacja będzie atomowa: Dopóki w grę nie wejdą przerwania i możliwość niezależnego dostępu do pozostałych bitów portu. Wtedy trzeba to opakować...
W normalnym świecie SPI działa w ten sposób, że wysyłając jeden bajt, odbiera się jeden. Pisząc pewien ogromny program, używałem powyższego założenia implementując obsługę SPI1 z pomocą kanałów DMA (DMA1_Ch2 i DMA1_Ch3). Jeden kanał używany do transferu bloku z pamięci RAM do SPI1->DR, drugi kanał do transferu w drugą stronę. Wszystko działało bez najmniejszego...
Nie wiemy nic o typie uC. Jeśli nie jest to Cortex-M4, to zapewne przyczyna kłopotu leży w bezsensownym i niepotrzebnym użyciu typu float. Użycie dwóch przerwań od dwóch timerów też ciut bez sensu, przecież wystarczyłoby w co 20-tym przerwaniu timera od pomiarów inicjować transmisję danych. Czy funkcja HAL_UART_Transmit_IT() jest blokująca? Mam nadzieję,...
Może więc warto by było napisać co zrobiłeś, że Ci zadziałało, w jakich konkretnych warunkach ten błąd wystąpi (np wersja Windows/Linux, wersja Ecplise) i pomóc innym? Sam walczyłem z Ecplipsem jak jeszcze nie był dla ARMów tak popularny, były z pluginami problemy ale trzeba było je zwalczyć np. zmienić wersje Eplipsa, zainstalować ponownie, poszukać...
(at)lehastar A co jeśli w programie występują przerwania? W 1-wire musisz generować impulsy od kilku do kil;kunastu mikrosekund, z łatwością obsługa przerwania może być dłuższa co zrujnuje całą transmisję 1-wire. W dodatku niepotrzebnie blokujesz procesor.
A jaki jest sens obsługiwać tutaj przerwanie w połowie transferu DMA? Wystarczy jedno - po zakończeniu transferu. To nie Arduino, że wystarczy połączyć dwa programy i jakoś będzie działać. Proponuję najpierw zapoznać się z dokumentacją układu i zrozumieć co oznaczają poszczególne funkcje i bity w HAL i RM. Bez tego pozostaje ślepe zgadywanie lub wiara...
Witam, używam STM32L031 i potrzebuję, aby RTC za pomocą alarmów wybudzało urządzenie o danej porze. W ramach testów jest to co 5 sekund. Nawet dla zabezpieczenia ustawiam dwa alarmy A i B, gdzie B jest 5 sekund dalej. Sprawdzałem kilka rozwiązań: - while w pętli main blokuje program do czasu zmiany flagi w przerwaniu od RTC alarmu - while w pętli czeka...
Co ciekawe zarówno kod asm jak i wartość rejestrów lr i sp jest taka sama przy -O0 jak i -O1 Sprawdź to jeszcze raz, ponieważ prawdopodobieństwo wygenerowania identycznego kodu dla różnych optymalizacji jest dosyć niskie... Atrybut "__attribute((interrupt))" przy przerwaniu (tym jak i innych) jest zbędny. Czy może to być kwestia przepełnienia stosu?...
Pierwszą rzeczą, jaka mi się pozytywnie rzuciła w oczy, to brak konieczności stosowania debouncingu dla przycisku, co widać w ciele funkcji increment_from_interrupt_PA0 (main.c) oraz funkcji EXTI0_IRQHandler (ISR.c). W procedurze obsługi przerwania od przycisku EXTI0_IRQHandler następuje odblokowanie semafora, pozwalając na wykonanie funkcji increment_from_interrupt_PA0....
Ciekawe, że jeszcze niedawno chciałeś próbkować z częstotliwością 100 Hz... I dalej chcę. Szybciej mi nie potrzeba. Zapis na kartę SD nie przeszkadza w próbkowaniu i składowaniu wyników do RAM. w 250 ms możesz na kartę SD zapisać kilka MB danych. Nie wiem, skąd obawy o wydajność. Chodzi o to, że podobno w tym samym czasie procesor nie jest w stanie...
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
Witam Chcę zrobić regulator obrotów silnika dc. Stopień mocy mam odseparowany optoizolatorami i mam wyprowadzone następujące sygnały : sterowanie każdym z osobna tranzystorem w mostku H i wyjście nadmiarowo-prądowe. Więc zaplanowałem, że wyjścia OC1, OC1N, OC2 i OC2N z timera 1 będą sterować poszczególnymi tranzystorami z uwzględnieniem czasu martwego....
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...
Zachciało mi się FreeRTOS i teraz mam z tym problemy ;) Piszę PORT do FreeMODBUS'a na STM32 działającego pod systemem FreeRTOS. Wszystkie płykłady jakie są nawet pod FreeRTOS'a działają na jego starszej wersji gdzie działają makra przełączania kontekstu: [syntax=c]portENTER_SWITCHING_ISR(); portEXIT_SWITCHING_ISR(); [/syntax] A w nowym FreeRTOS takich...
Witam serdecznie, Mikrokontroler: AT89C51AC2; IDE: Keil Kompilator Keil W pracy projektuje soft do badania ilości materiału na blacie maszyny szwalniczej. Bazuje on na mikrokontrolerze AT89C51AC2. Program posiada możliwość uczenia przez operatora. Polega to na tym, że operator naciska przycisk system dokonuje pomiaru na przetwornikach ADC i zapisuje...
blokowanie przerwania przerwania stm32 stm32 przerwania
spadek napięcia 2n3055 schneider kanały kabel skrzyżowany
parkside spalony falownik hitachi sj700
Napięcie robocze Riso w pomiarach rezystancji izolacji Grzałka do lodówki Electrolux RA0450nd 230V 90W - gdzie kupić?