powtarzam SYSCFG włączone poprawnie?
^ Fakt, niedopatrzenie... dziękuję za uwagę :) przerwanie jednak nadal nie wykonuje tego, co zaplanowałem. Jakieś inne pomysły ?
Choć dopiero zaczynam przygodę z STM32 to po mojemu nadpisujesz strukturę i dlatego zawsze działa Ci ostatnie zdefiniowane przerwanie.
12 cykli - tyle zajmuje przejście do obsługi przerwania 6 cykli - tyle zajmuje przejście z przerwania do przerwania o wyższym priorytecie 6 cykli - tyle zajmuje przejście do przerwania o niższy priorytecie bezpośrednio po zakończeniu przerwania o wyższym priorytecie 12 cykli - tyle zajmuje wyjście z przerwania. Ta zasada tyczy się wszystkich przerwań
Tak średnio, bo równie dobrze przerwanie timera może wystąpić 1 cykl zegara po jego włączeniu, a chyba nie o to Ci chodzi... 4\/3!!
mam ustawione przerwanie zewnętrzne ustawione na wyzwalanie zboczem opadającym i narastającym w funkcji obsługi przewania zapisuję sobie do bufora: void EXTI0_IRQHandler(void) { //Check if EXTI_Line0 is asserted if(EXTI_GetITStatus(EXTI_Line0... != RESET) { Buffer[iWriteIdx] = 'I'; GoToNextElement(&iWriteIdx);...
Witam Mam problem z przerwaniem zewnętrznym - procesor nie wchodzi do funkcji przerwania, przerwanie nie wykonuje się W przypadku sprawdzania stanu czujnika w pętli - wszystko działa jak należy w przerwaniu już nie. [syntax=c]void EXTI2_IRQHandler(void) { LED1_bb ^= 1; EXTI->PR |= EXTI_PR_PR6; } int main(void) { gpio_init(); pll_start(CRYSTAL, FREQUENCY);...
Czesc, mam problem z konfiguracja przerwan zewnetrznych. Sprawdzalem kilka przykladow znalezionych w necie i zaden (prawie) nie dziala. Jedynym przykladem ktory dziala jest gotowiec z Atollic studio, i generowanie przerwan na porcie PA0. Niestety zadne modyfikacje na inne porty nie dzialaja. Oto moj kod: Inicjalizacja GPIO na porcie PB12: [syntax=c]void...
Witam mam lekki problem, mianowicie staram się oprogramować zewnętrzne przerwanie, standardowo wywoływane po wciśnięciu przycisku, reagujące na zbocze opadające. Okej, wszystko elegancko ale po wejściu w przerwanie nie jest kasowana flaga przerwania. Przeglądając RM, nie odnalazłem żadnego rejestru w EXTI, który by za to odpowiadał. Pytanie brzmi zatem:...
Witam, prosiłbym bym o pomoc, żeby ktoś wytłumaczył, albo podał przykład jak skonfigurować przerwania zewnętrzne w tym mikrokontrolerze bo walczę z tym i nic mi nie wychodzi i zaczynam podejrzewać, że to procek jest zepsuty, albo tej sztuki jeszcze nie opanowałem :D na początku pisałem własne kody, ale po nieudanych próbach w końcu wkleiłem gotowca,...
Witam Mam następujący problem przy płytce STM32F0Discovery. Celem programu jest na poziomie obsługi przerwania ustawienie globalnej zmiennej, a następnie po powrocie do maina sprawdzenie zmiennej i wykonanie instrukcji. Kod pliku main.c [syntax=c] #include "stm32f0xx.h" #include "setup.h" volatile bool new_data = false; int main (void){ setup(); while(1){...
Witam, próbuję zrobić projekt, w którym używam przerwań zewnętrznych, na razie staram się chociaż jedno uruchomić, ale po wejściu w przerwanie mikrokontroler się zawiesza. Jedno zadanie włącza LCD, drugie miga sobie diodkami, a gdy naciskam przycisk to diodki się zatrzymują i nic już do resetu się nie dzieje. Jestem początkujący w tym temacie więc za...
Skonfigurowałem TIM4 aby wywoływał przerwanie. Jeżeli definicję przerwania umieszczę w main.c to wszystko działa. Jeżeli definicja zostanie umieszczona w innym pliku to każde wywowałnie wpada do Default_Handler. Przerwanie definuję w ten sposób: [syntax=c]void TIM4_Handler(void) __attribute__((interrupt)); void TIM4_Handler(void) { ... }[/syntax] Czy...
witam, Mam następujący problem: Do Pinu 3 portu GPIOC mam podłączony sygnał 1kHz i chcę generować przerwanie od zbocza opadającego. moja konfiguracja: [syntax=c] GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SY...
Witam, Mam problem z następująca rzeczą, Na pin PC6 podpiąłem tymczasowo przycisk - po naciśnięciu zwiera pin PC6 do masy. Przycisk uruchamia przerwanie EXTI i zmienia stan wyjścia na przeciwny. Po wciśnięciu przycisku brak jakiejkolwiek reakcji na zdarzenie. Konfiguracja przerwania: [syntax=c] void init_interrupt_PC6(void) { gpio_pin_cfg(GPIOC, 6 ,...
Na pierwszy rzut oka w przerwaniu nie sprawdzasz flagi ani jej nie kasujesz... A także nie włączasz systemu NVIC i go nie konfigurujesz...
Nawet jeżeli nie generuje jednego tylko więcej, to po jakimś czasie licznik powinien zliczyć do 5, w moim przypadku nic się nie dzieje, przerwanie się nie wywołuje.
gaskoin- dwa PC817 są równie dobre, zwłaszcza jak się je ma w szufladzie. Inna sprawa- przebieg na wyjściu detektora zera jest taki sobie- żeby nie powiedzieć paskudny. No i podany jest na zwykłe przerwanie zewnętrzne a nie na żaden komparator. Pewnie ARM ma na wejściach jakąś histerezę- ale może trzeba ją w jakiś okropny sposób włączyć? Może sprawdzić...
Pomysły, jak to naprawić, znajdziesz w analogicznych wątkach, które wracają tu co miesiąc - przeszukaj forum. Oczywiście przerwanie nie pochodzi od przycisku, prawda?
a plik startowy masz dla dobrej lini STM? z tego co się orientuję i rozumiem to tak. Dlaczego głupia biblioteka do stm32 rządzi swiatem i wiecznie jest ktos, komu ona nie działa?... Ludzie, opamiętajcie się... Dlatego, że jest dość przejrzysta i dużo bardziej przystępna dla kogoś kto miał styczność z klasycznym, komputerowym C, a nie z mikrokontrolerami,...
Problem rozwiązało właśnie użycie przerwań zewnętrznych. Można w funkcji obsługi przerwania EXTI sprawdzać od którego wejścia pochodzi przerwanie i zliczać impulsy z tego wejścia. Dzięki za pomoc.
Witam wszystkich Tak jak w temacie, skonfigurowałem eclipse pod stm32. Używam makefile i linkera od Frediego. Wszystko pięknie działało(miganie diodą, obsługa klawiszy etc) do mementu, gdy postanowiłem przetestować przerwanie zewnętrzne. W tym momencie podczas odpalania program trafia do funkcji _Default_Handler w pliku vectors.c gdzie się zapętla (chyba...
Mam pytanie w związku z zewnętrznymi przerwaniami. Czy można wykryć czy przerwanie zostało wywołane przez PA0 czy PB0 bo widzę że zostały tu one wrzucone do jednego "worka" w EXTI trochę to dziwne jako, że wcześniej bawiłem się atmegami. Jeśli się da to proszę o jakąś wskazówkę.
Witam! Mam kłopot z uartem w stm32. Wysyła ok, wchodzi w przerwanie od rx uarta i odczytuje jego DR zapisując do tablicy i zwiększając wskaźnik do tablicy żeby był gotowy na następne przerwanie ale ono właśnie nie wystepuje pomimo, że następny bajt przychodzi uartem. Systick co 100ms inicjuje wysłanie zapytania do zewnętrznego urządzenia i urządzenie...
Witam, Eksperymentuję trochę z STM32 na płytce Nucleo F446RE i natknąłem się na pewien problem. Płytkę zasilam zasilaczem MeanWell RD-65B, który produkuje 24V oraz 5V. Oczywiście zasilanie Nucleo podłączam pod 5V. Na tym samym obwodzie, do którego podłączony jest zasilacz działa też kompresor. Jakiś tani chiński o mocy około 800W. Mój problem polega...
Czy dobrze rozumiem że ustawiając Update DMA i Update interrupt to po każdym przekręceniu się licznika zostanie wywołane przerwanie i DMA? Biorąc pod uwagę fakt, że kanał który miałby to DMA od timera obsłużyć nie jest włączone, to raczej niezbyt będzie wywoływane. Przerwanie to co innego, ale z tego co widziałem nigdzie go nie włączasz. W przypadku...
Witam, wiem, że temat stary, ale też używam Keila i przyszła mi potrzeba za alokować 2kB pamięci, żeby wczytać dane z zewnętrznego ramu i zapisać w zewnętrznym flashu i też malloc zwracał mi wskaźnik NULL i w moim przypadku wystarczyło w pliku *.s zmienić Heap_Size EQU 0x00000200 na Heap_Size EQU 0x00000F00
Na początku upewnij się, że włączyłeś zegary we wszystkich wymaganych urządzeniach (albo załącz na forum cały program). Możesz też wymusić obsługę przerwania zewnętrznego używając funkcji bibliotecznej "EXTI_GenerateSWInterrupt". A poza tym proponuję zacząć od migania diodką a później napisz taki prosty program starając się powoli zastępować funkcje...
Czy program składa się tylko z przerwań? Nic innego już nie ma? PS Oczywiście często tak się pisze że nie ma nic poza przerwaniami ale chyba to nie o to chodzi. No ja dopiero zaczynam z stm32, skoro chce zmienić napis w momencie wykonania jakiejś czynności zewnętrznej, to nie mam pojęcia jak to zrobić bez jakiegoś przerwania. Dlatego się pytam czy...
Witam W trybie FS możesz mieć mały problem z freeRTOS i USB jeśli chodzi o wysłanie danych z Stm32 do PC. W nim nie masz DMA i żeby wysłać dane musisz albo sprawdzać sam czy pierwsze 64 bajty zostały wysłane i potem wysłać następne (np co 1ms) lub zostawić jak masz zrobione w bibliotece od Stm, czyli oni włączają przerwanie Tx FIFO Empty Interrupt,...
Witam. Chciałbym prosić o sprawdzenie kodu. Chciałem uzyskać dwie rzeczy mianowicie: 1. Ustawić tak timer by 100 razy na sekunde wystąpiło przerwanie. 2. Ustawić przerwanie zewnętrzne od zbocza opadającego na którymś pinie (np. PE0). Skonfigurowałem tak peryferia: stm32f10x_it.c : [syntax=c]void EXTI0_IRQHandler(void) { static unsigned int i=0; //.....//...
Ja na samym początku przerzucam wektory przerwań na początek pamięci RAM. A później wstrzykuję swoją funkcję w miejsce oryginalnego wektora. Po rozmyślaniu na ten temat doszedłem do następujących wniosków. 1. Możliwość dynamicznej rejestracji przerwań (najlepiej w wysoce abstrakcyjny sposób, tak aby funkcje nie musiały być publiczne) byłaby z pewnością...
Chce zrobić obługę przerwania zewnętrznego: [syntax=cpp] void NVIC_init(void) { NVIC_InitTypeDef NVIC_InitStruct;// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AF... ENABLE);//wlaczenie przerwan NVIC_PriorityGroupConfig(NVIC_PriorityGr... #ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else /* VECT_TAB_FLASH */ NVIC_SetVectorTable(NVIC_VectTab_FLASH,....
Witam, odwróciłem 115200 ale to wychodzi na jedne bit a nie bajt czyli raz 10 czyli około 86us, to nie jest ważne... Teraz uruchamiam timer co 1ms i sprawdzam czy "były dane" chciałem użyć timer w trybie Slave mode: Reset mode, czyli ja podam mu zewnętrzny sygnał to zbocze narastające lub opadające od transmisji go wyzeruje, a jak nie ma transmisji...
Chciałem zrobić przerwanie zewnętrzne (EXTI0), że jak naciśnie się guzik na płytce to tam lampki się zapalą inaczej. Tylko problem jest taki, ze jak nacisnę sobie guzik to niby program skacze do przerwania - tj. tak mi OpenOCD pokazuje: halt target state: halted target halted due to debug-request, current mode: Handler External Interrupt(6)...
Dobrze mówisz Freddie przerwanie będzie w takim przypadku generować problemy, a wtedy będą powstawać błędy wielkości 0xFFFF a to jest nie dopuszczalne. No to biorę się za naukę obsługi przerwań zewnętrznych. Mam jeszcze jedno pytanie do Ciebie Freddie do którego nie będę zakładać nowego tematu. Czy wyrobi się procek STM32F103CB z: -obliczeniem położenia...
Witam, Dalej walczę z książka STM32 Aplikacje i przykłady w języku C. Doszedłem do obsługi przerwania RTC. W książce jest przykład, który konfiguruje przerwanie od RTC, tak jak by to było przerwanie wewnętrzne. Autor zakłada, ze w pliku stm32f10x_it.c jest gotowy szablon funkcji RTC_IRQHandler (), który należy uzupełnić oraz uaktywnić przerwanie w NVIC....
Witam! Próbuje skonfigurować zewnętrzne przerwanie od przycisku dołączonego do PC0. Wciśnięcie przycisku ma powodować zaświecenie diody, co się nie dzieje. Dioda zaświeca się po machnięciu ręką nad płytką, a dokładniej nad goldpinem do którego dołączone jest PA0. Korzystam z ZL31ARM. Kod porównywałem z tematem http://www.elektroda.pl/rtvforum/topic20...
Banialuki pleciecie, Koledzy (niektórzy). Praca krokowa w 8080 wygląda dokładniuśko tak samo, jak w Z80, 8085, 8088 i większości innych mikroprocesorów. Najprostszy system z 8080 właśnie konstruuję - składa się z 8080, 8224 i STM32. Będzie na nim działał również CP/M-80, który już działa na analogicznych maszynkach z Z80 i 8085. "Prawdziwy" komputerek...
Tak czytając ten fragment odniosłem wrażenie że omawiasz opóźnienie związane z reakcją na przerwanie, a nie na reakcje samego wątku. Chodzi o opóźnienie reakcji na "zdarzenie odblokowujące wątek". Przykładowo wątek A czeka na semafor, wiec jest w stanie "zablokowanym". Teraz następuje zdarzenie - semafor zostaje "ustawiony" (przez przerwanie lub przez...
Mam uruchomioną tą kamerę też pod STM32F407IGT6 ( nie discovery ) i tam jest właśnie pod FSMC wysyłane, jednak było to głupie przekopiowanie gotowca. Nie za bardzo mogę zrobić to pod FMC bo potrzebuję obrobić odebraną ramkę w przyszłości w ramie procesora, choć teraz zależy mi tylko, żeby zobaczyć, że coś się zapisuje do mojego bufora, mam też ram zewnętrzny...
Witam Od niedawna bawię się uC STM32 i krok po kroku próbuję nauczyć się ich obsługi. Słowem wstępu: Mam płytkę ZL31ARM, pewne doświadczenie z programowaniem w C/C++ i zupełny brak doświadczenia z mikrokontrolerami. Mam już za sobą mruganie diodami i proste pętle opóźniające; obecnie chcę nauczyć się obsługi przerwać przy wykorzystaniu EXTI i IO. Korzystam...
Witam wszystkich, Po dwóch a może trzech tygodniach poszukiwań znalazłem błąd. Nie odkryłem samodzielnie tylko znalazłem tu na forum : [url=http://www.elektroda.pl/rtvforum/to... - I2C na przerwaniach Piszę w SystemWorkbench for STM32. Przy tworzeniu kodu w STM32CubeMX (czyli na bibliotekach HAL) program dodawał za mnie...
Teraz mam problem z przerwaniami od końca konwersji ADC1. Działanie układu wygląda tak jakby mikrokontroler nie wchodził w obsługę uchwytu przerwania od przetwornika ADC 1,2. Konfiguracja przetwornika: void init_adc (void) { // Niezależny tryb pracy // Włączenie przerwań od końca przerwań - EOC ADC1->CR1 = ADC_CR1_EOCIE ; //Wybór czasu...
Gdzie ustawiasz TIM_Clock_Division_CKD? Powinno być na TIM_CKD_DIV1 (0) - to są bity CKD w TIM1->CR1. Być może tutaj masz ustawione dzielenie przez dwa. Co do bitów CKD, to są domyślnie ustawione na 0x00 i takie pozostają, nie zmieniam ich. Natomiast Jeśli chodzi o CKD, czy to przypadkiem nie odnosi się do zewnętrznego wyzwalania timera? 1/ nadużywanie...
Mam program, który odczytuje dane z dwóch przerwań i zapisuje je na SD. Wszystko by było dobrze ale dane mi się gubią. Mam przerwanie nazwijmy je 'A' które jest częste i 'B' , rzadsze. Zgodnie z założeniami na kracie powinno pojawić się coś takiego 'dane z B' 'dane z A' 'dane z A' 'dane z A' 'dane z A' ....(razy 125) 'dane z B' czyli stała liczba A...
(at)ElektrodaBot https://obrazki.elektroda.pl/8804163100_... 1. Krótka odpowiedź Najczęstsze źródło opisanych objawów w Hisense HV663C60 (typ DW50.2, rok produkcji 2021–) to: 1. przerwana wiązka przewodów w lewym zawiasie drzwi (ponad 70 % zgłoszeń serwisowych dla tego modelu), 2. zadziałany czujnik zalania w tacy dolnej (anti-flood), 3....
Witam, Właśnie jestem w trakcie przenoszenia małego projekciku z doświadczalnej pajęczynki na pcb, i mam mały problem. Dotychczas używałem Timera 2 do pomiary sygnału zewnętrznego (z odbiornika modelarskiego). Wszystko było ok. Teraz musiałem użyć Timera 3 kanału 2 wyjście PC7 (procek STM32F103Vx)... no i zaczęły się problemy. Pomimo zrobienia full...
Witam, Chcę dokonać bardzo dokładnego pomiaru czasu trwania impulsu, podawanego na PA11. Wykorzystuję stm32f103vbt6. Chcę aby zostało wygenerowane przerwanie (TRIGGER) po pojawieniu się impulsu na pinie PA11, po którym to timer TIM1 na kanale CH4 rozpoczyna zliczanie od zera. Po zaniku sygnału na PA11 muszę odczytać wartość do której zdążył doliczyć...
Witam, z góry przepraszam za mój nikły poziom obeznania w świecie STM32. Myślę, że problem będzie błahy dla wielkich myślicieli elektrody :) Otóż skonfigurowałem sobie TIM7 do pracy tak: [syntax=c]TIM_TimeBaseInitTypeDef TIM_InitStructure; TIM_InitStructure.TIM_Period = 4; TIM_InitStructure.TIM_Prescaler = 999; TIM_TimeBaseInit(TIM7, &TIM_InitStructure);...
https://obrazki.elektroda.pl/3252078300_... Poniższy artykuł przedstawia – krok po kroku – wykonanie niewielkiego, kieszonkowego oscyloskopu cyfrowego. Nie jest on tak dobry jak zwykły warsztatowy oscyloskop, ale z drugiej strony można zabrać go niemalże wszędzie. Poza tym – nie wszystkie projekty DIY muszą mieć sens....
Aktualnie rozpracowuję przerwania zewnętrzne i mam takie dziwne zachowanie programu otóż na wbudowanym z zestaw nucleo przycisku przerwanie zapala mi diodę tak jak chcę (według schematu nucleo jest od podciągnięty do vcc) jednak jak chcę dodać swój przycisk na płytce stykowej podłączony do portu A0 to działa on wtedy kiedy fizycznie rezystorem podciągnę...
Cześć, Mam problem z uruchomieniem USB w Eclipse niestety mam również problem z debugowaniem pod OpenOCD więc na razie diody ;/.. Na razie chcę jedynie migać diodą i próbuję do tego dołączyć przerwania od USB. Wszystkie przerwania i konfigurację wziełem z programu który działał mi pod uVision jednak ze względu na ograniczenie w rozmiarze kodu postanowiłem...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
Witam ponownie, zacząłem niedawno zabawę z CANem, a raczej powinienem napisać, że chciałem zacząć. Jako, że ostatnio nie mam dostępu do auta postanowiłem pogadac z interfejsem ELM327. Tak więc podłączyłem CANL z CANL i CANH z CANH między płytką a interfejsem. Idea jest taka: wysyłam komendy do interfejsu przez usart1 a on wysyła do mnie odpowiedzi po...
Witam, mam problem z przerwaniami zewnętrznymi. Otóż mam podłączone przyciski z napięciem od zestawu STM32 i pinami kolejno PD1, PD3, PD4, PD6, PD7. Napisałem proste przerwania ale one nie działają! Zadaniem każdego przerwania jest zapalenie innej diody na zestawie. Tzn. przerwanie w moim przypadku wykonuje sie samoczynnie (diody na płytce migają z...
http://obrazki.elektroda.pl/7258579400_1... Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60. Całość...
Co to niby ma być? USART1->BRR = (24+(0.9216/2))/0.9216; Zmieniłem na: Popatrz, jak zaprogramowałeś DMA - po 8 transferów, miały być 4 po 16 bitów z ADC do pamięci i 8 po 8 bitów z pamięci do USART. Poprawione, usunąłem również priorytety: Założę się na ślepo (a STM32F1 nie znam), że to nie jest potrzebne: ADC1->CR2 |= ADC_CR2_EXTTRIG; No więc sprawa...
Cześć, Od jakiegoś czasu borykam się z takim problemem: chciałbym odbierać po CANie ramki, wpisywać je w gotowy szablon i dalej wysyłać po USARCie na kompa w kodzie ASCII. Czegoś mi brakuje w tym kodzie i za każdą wskazówkę będę wdzięczny. Z góry dzięki:) To mój main: [syntax=c] unsigned char tx_uart[]=" ID: DL: F: T: DATA: ";//54 char ramka[55]; unsigned...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
stm32 przerwać przerwać przerwać zewnętrzny zewnętrzny przerwać
ariston wywalać bezpiecznik odbieranie danych rs232 wirnik alternator
Amica ACZ3104P – lokalizacja czujnika temperatury, zdjęcia kapilary termostatu K59 MAN F2000: różnice silników 293 KM vs 343 KM – D2865, D2866, osprzęt, turbo, EDC