Bo może wektor przerwań dla tego akurat kanału DMA się nazywa inaczej? Porównaj nazwę Twojej funkcji z zawartością tablicy wektorów. Jeśli masz w projekcie pliki C++, to trzeba przerwania deklarować jako extern "C". 4\/3!!
Ileż się naszukałem w User Manualu co odpowiada za globalne włączenie przerwań w LPC2478. I okazało się że chyba nic. Po prostu to wymysł Keila ta funkcja. W User Manualu tego nie znajdziesz, tak samo jak szczegółów dotyczących przerwań, instrukcji assemblera itp. Dlaczego? Dlatego, że to są rzeczy specyficzne dla RDZENIA tego mikrokontrolera - rdznia...
A plik linkera przeglądałeś? _user_stack_size = 512; _fiq_stack_size = 0; _irq_stack_size = 0; _supervisor_stack_size = 0; _abort_stack_size = 0; _undefined_stack_size = 0; _system_stack_size = 0; Sam pare razy pisałem, że aby uruchomić przerwania, trzeba zmienić rozmiary stosów w pliku linkera... Do tego jeszcze gdybyś przejrzał pierwszy lepszy przykład...
(at)BlueDraco Nie przesadzaj. AC6 równie dobrze działa jak i każde inne środowisko.
Witam, No trochę jaśniej jest. Ram który przeznaczyłeś na stos jest prawie całym obszarem RAMU mikrokontrolera. 0x1FE4 - wielkość twojego stosu (obliczone wierzchołek stosu(0x1FF0) - początek sterty(0xc). Stosu Ci zapewne nie zabraknie. np. wywołujesz w mainie moja_funkcja(int param1, int param2, char tab[20]) to musisz przy wywoływaniu z przekazaniem...
Powiedz mi skąd u ciebie wektor przerwania wynosi 10 ? Czy to jakis Egzotyczny procesor czy jak ? Bo dla przerwania Timera 0 dla normalnego uK jest to inna wartość Patrz np Atmel strona http://www.atmel.com/dyn/products/tools_... C51 Timer1 in Mode 1 with Soft Gated Timer (20 KB, updated 06/04) /** * FUNCTION_PURPOSE: timer1 interrupt...
Wychodzi na to ze to wina srodowiska? Da sie jakos naprawic te usterke? Powiem szerze ze na eclipse bardzo przyjemnie mi sie pracuje:) ale jak takie bledy ma..to mozna caly tydzien szukac przyczyny.. Ja bardzo przepraszam za to co napiszę teraz, a i tak to będzie moja bardzo delikatna reakcja na elektrodzie, ale to co powyżej jest napisane to kompletna...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
Teraz powinno być dobrze Zależy, co rozumiesz przez "dobrze". Jeśli chodzi o to, czy ten program będzie działał zgodnie z Twoimi założeniami, to musisz sam jakoś przetestować, bo ja nie mam czasu na szczegółowe analizy. Nie znam zbyt dobrze Eclipse i nie wiem, jakie ma możliwości symulacji, ewentualnie pozostaje skompilowanie, zaprogramowanie mikrokontrolera...
Zgadzam się, że eclipse to edytor. Jeżeli chodzi o kompilator to używam własnie gcc i przykładów z winarma, natomiast wydaje mi sie proble tkwi w składni pliku crt.s. Postempując wg instrukcji Jamesa Lyncha, można stworzyć sobie projekcik(są źródła przykładowe), wszystko sie kompiluje, nawet przerwania sa poprawnie kompilowane, gorzej jest ich wykonywaniem...
Sprawdź, cza nazwa Twojej procedury obsługi przerwania jest taka sama, jak w tablicy adresów przerwań w pliku startup. Wyrzuć zbędne wywołanie SetPriority.
O popularności mikrokontrolerów STM32 wśród hobbystów i pasjonatów nikogo nie trzeba przekonywać. Firma ST taranem wbiła się w społeczność mikrokontrolerową rozdając płytki Discovery i Nucleo. Wraz z rosnącym zainteresowaniem STMami pojawiło się kilka (polskojęzycznych) książek oraz kursów/poradników na ich temat. Po co więc kolejny? Istniejące poradniki...
https://obrazki.elektroda.pl/5694434400_... Moduły zasilaczy warsztatowych, takie jak DPS5005, dostępne są od dłuższego czasum.in. na AliExpress. Doczekały się wielu recenzji, w większości pozytywnych. Jednakże często wskazywanym problemem z tymi modułami jest kiepskiej jakości oprogramowanie – interfejs użytkownika pozostawia...
Spacja w linii polecenia jest traktowana jako separator. Kompilator nie może znaleźć pliku o nazwie "with" - masz to jawnym tekstem. Nie używaj nazw plików ze spacjami.
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Wpadł mi w ręce uszkodzony tuner TV-Sat Echostar DSB-717 i postanowiłem jakoś go wykorzystać. A właściwie nie cały, tylko płytkę z wyświetlaczami i mikrokontrolerem ATTiny2313. Układ mierzy temperaturę w 6 punktach z wykorzystaniem czujników Dallas DS18B20 przy rozdzielaczu co na podłogówkę i grzejniki. Mierzę temperatury: - zasilania i powrotu z podłogówki...
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...
Wróciłem do esp-idf v4.2 Eclipse dalej podkreślał ale po wgraniu program działa tak jak kiedyś. Wróciłem do eclipse 2020-12 Niczego już nie podkreśla i wszystko działa jak należy.
To był głupi pomysł ,ustawiłem sobie co 15 min i wyświetlił się komunikat er=21 reset i nic nie mogłem już zrobić przeprogramowałem i żyje . Jak to możliwe? A jak braknie prądu to co? Przecież to normalne, że czasami wyłączają zasilanie i potrafi wracać np. za 10 min, zanikać znowu i wracać po ok. 1/2h... Nie rozumiem-po odłaczeniu zasilania ten prostownik...
Witam, Mam pewien problem z obsługą przerwań. Mianowicie mam projekt jako C++ w Eclipse i funkcję main() w pliku o rozszerzeniu .cpp. Jeśli uruchomią przerwania i zdefiniuję funkcję przerwania w tym samym pliku co main() to przy jego wyzwoleniu procek wskakuję do __Default_Handler znajdującym się w vectors.c. Tak jak by nie widział mojej funkcji przerwania....
https://obrazki.elektroda.pl/5285565000_... Język programowania Arduino i środowisko Arduino IDE są najpopularniejszymi narzędziami programistycznymi na rynku hobbystów i amatorów. Niestety temu narzędziu brakuje niektórych funkcji dostępnych w profesjonalnych IDE, takich jak autouzupełnianie kodu czy możliwość dodawania punktów przerwania...
Skompilowałem przez avr-gcc pod linuksem , spróbuj zamienić avr-g++ na avr-gcc? Albo pobierz eclipse CDT z wine [url=http://www.winehq.org/]Link jak widzisz [url=http://appdb.winehq.org/objectManag... AVRStudio już nieźle działa pod wine. Nie rozumiem poco się męczysz z makefile itp jak można to zrobić wygodnie z GUI....
Przede wszystkim, to gdybyś korzystał np z ECLIPSE to zobacz sobie sam na obrazku ;) nie miałbyś nawet możliwości żeby się pomylić z nazwą wektora przerwania - bo w Eclipse masz od razu pod ręką wszystkie nazwy wektorów przerwań, rejestry ale też pliki nagłówkowe i wiele innych zobacz: http://obrazki.elektroda.pl/5492100600_1... (nie...
Ale po uploadzie core blokował się, komunikat: the core is locked up! Skoro używałeś przerwań, to pewnie problemem był rozmiar stosu dla przerwań (konfigurowany w skrypcie linkera, domyślnie zero), więc układ się wieszał. Faktycznie to mógł być powód, bo tego nie zmieniałem, a przykład był skrojony na miganie diodami bez użycia przerwań. W moim przykładzie...
Nie piszesz, na jakiej częstotliwości puszczasz MCU. Ale opisane objawy pasują do kłopotów z MAM. Spróbuj zgłębić temat. Przeczytaj erratę. W googlach też jest wiele informacji. Albert
Skoro warningi są istotne to zaatakuję takiego: Zacznijmy od tego, że to nie jest ostrzeżenie kompilatora, tylko statycznego analizatora z Eclipse ("Code Analysis Problem"). Faktycznie nigdzie w kodzie nie wywoływana funkcja. Wywoływana faktycznie nie jest, za to wszystkie nieużywane przerwania są do niej przypięte, więc jest jednak potrzebna (; Obecnie...
Doświadczenie uczy mnie, że dyskusja o wyższości 8bit nad 32bit (czy odwrotnie) będzie trwała tak długo, jak długo obydwa rodzaje procesorów będą dostępne. mam wiaderko AVR-ów i podobne wiaderko ARM-ów, głównie STM32 choć też LPC. Znajdą się też malinki czy wcześniejsze dwurdzeniowe A20. Jak pewnie większość (przynajmniej tych starszych) zaczynałem...
W czystym Eclipse miałem chyba włączone obie te rzeczy z automatu, a tu nie i nie potrafiłem się dogrzebać :-/
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...
drążąc dalej zmieniłem w startupie inicjalizację stosu na : ldr r0, =__process_stack_end msr PSP, r0 ldr r0, =__main_stack_end msr MSP, r0 Ale nic się nie poprawiło To bezsensu, bo MSP jest inicjalizowany automatycznie wartością spod adresu 0 (patrz w tablicy wektorów). I tutaj pierwsze pytanie jak należy zmodyfikować projekt aby procek korzystał ze...
Nie bardzo rozumiem ale chyba włączasz przerwania od UARTa. Tak? No a gdzie ich obsługa?
Nie do końca kumam po co zmieniasz w przerwaniu VPBDIV (APBDIV) i wylaczasz samo to przerwanie - w ARM7 w trybie IRQ dalsze przerwania IRQ sa zablokowane, wiec nie ma potrzeby takich operacji. Tam gdzie sugerujesz różnicę nie będzie jej, no bo i czemu miałaby być? Jedyne co trzeba zmienić, to rozmiary stosów w skrypcie linkera - są na samym poczatku....
Nie pochwalę się pewnie teraz wiedzą ale już piszę co zrobiłem że mi zaczął freertos banglać.. :) A więc - podpięte przerwania miałem w pliku stm32f10x_it.c: [syntax=c]void SVC_Handler(void) { vPortSVCHandler(); //FreeRTOS SVC Handler } void PendSV_Handler(void) { xPortPendSVHandler();//FreeRTOS PendSV Handler } void SysTick_Handler(void) { xPortSysTickHandler();//FreeRTOS...
Odnośnie inicjowania liczników, pole struktury TIM_Period w jakim związku pozostaje z okresem wykonywania przerwania powstającego od kanałów licznika. Zauważyłem że wartośc tego pola nie zawsze ma wpływ na okres wyzwalania przerwań. Chyba że coś pochrzaniłem.
Luźne przemyślenia pod rozwagę: -procesor wchodząc do obsługi przerwania stanu ABORT (tryb ARM) podstawia shadow-registers w tym r13 który jest wskaźnikiem stosu używanym w czasie obsługi tego typu wyjątku. W twoim przypadku skoro chcesz wywoływać w procedurze obsługi funkcje do obsługi LCD prawie na pewno trzeba zarezerwować specjalny obszar stosu...
Witam. Piszę w eclipse i chcę umieścić obsługę przerwania (SysTick) we własnym pliku. O ile w C nie było z tym żadnych problemu to w C++ wykonuje się SysTick_Handler() z pliku \system\src\corexm\exception_handlers.c Po zakomentowaniu program ląduje w Default_Handler(); W projekcie w C plik exception_handlers.c również zawiera pustą definicję SysTick_Handler()...
Rozwiązałem go przez zakomentowanie miejsc, na które "krzywo patrzył" eclipse. A na czym dokładnie polegał problem? Skoro interrupts używają tylko main stack to zmieniłem to. Nie wiem czy dobrze Dobrze, choć ja zwykle zaczynam od 1kB dla obydwóch stosów (; Dla małego przerwania 128B wystarczy oczywiście, ale później może być już za mało... 4\/3!!
Kilkukrotnie już instalowałem tą wtyczkę na różnych komputerach i nigdy nie pojawił się ten problem, może dlatego, że Eclipse przy okazji samo (automatycznie) ściągało nową wersję całego CDT? 4\/3!!
tak na przyszlosc to wystarczy otworzyc wiersz polecen i wpisac arm-elf-gcc --version inne przerwania IRQ ci dzialaja? 4\/3!!
Najprościej będzie chyba wziąć pliki z projektu dla LPC1114 i poprawić w nich stosowne rzeczy (rozmiary pamięci, ich adresy i rozmiary stosów w skrypcie linkera, przerwania w tablicy wektorów). Nie jest to dużo roboty, choć jest dosyć nudna.
Chodzi mi o wyzwalanie konwersji ADC w przerwaniu - można do tego użyć timera bez przerwań ;) No i te wszystkie externy można by przenieść nad funkcję obsługi przerwania.
Właśnie próbuję uruchomić program z pamięci RAM. Usunąłem linijkę rom (rx) : org = 0x8000000 oraz zastąpiłem wszystkie "> rom AT > rom" na "> ram AT > ram" w pliku linkera. Program działa do momentu wywołania przerwania (w moim programie przerwania SysTick). Wtedy licznik rozkazów skacze z adresu 0x2.... pod adres 0x08000864.Czyli do pamięci flash i...
Skrypt linkera niedopasowany do startupa. http://www.elektroda.pl/rtvforum/topic13... http://www.elektroda.pl/rtvforum/topic13... Zaadaptuj dla Twojego układu (wystarczy zmienić rozmiary i adresy pamięci w skrypcie linkera oraz sposób wywołania przerwania IRQ w tablicy wektorów) i po problemach. 4\/3!!
Eclipse to tylko edytor tekstu. Reszty nie wiem. Jak nie wiesz specjalnie jak to zrobić to możesz też dać na początku przerwania zapalanie LEDa a na końcu gaszenie. I potem oscyloskopem zobaczyć.
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...
Przy okazji - w jakim dokumencie szukać tego typu informacji? Dodano po 1 No właśnie wszystko powłączałem - w rejestrach USART, w pliku stm32f10x_it.c itd. Tylko sama ta linia nie jest przyjmowana, coś jest nie tak. Dodano po 4 Chodzi mi o to, że wszystkie włączenia przerwań w NVIC, jeżeli są prawidłowe, to to co w nawiasie jest wyświetlane niebieską...
Dobra, Zabrałem się do roboty od początku, pobrałem przykład do STM32F407 ze strony Freeddie'go, w Eclipse wrzuciłem Import -> Existing Projects into Workspace. Eclipse znalazł tam projekt stm32f4_blink_led, super. Zainstalowałem według zaleceń GNU Coreutils. Dwie rzeczy teraz do rozwiązania: 1. Nie widzi stdint.h -> jak mu powiedzieć, gdzie to siedzi?...
Do TCCR0 wpisałem raz w timer0 a do TCNT0 za każdą obsługą przerwania... Chciałem obczaić ogólnie możliwości tego timera0 teraz będę obczajał pozostałe timery, jak mi nie będzie szło to będę pytał... Dzięki za pomoc;) Dodano po 14 Panowie a może wiecie jak skonfigurować eclipse do współpracy w avrasm?? Używam ubuntu, ale avrasm można dzięki 'wine' zainstalować......
Tak wiem - próbowałem już tej metody - starałem się poustawiać te opcje tak jak w Makefile'u, jednak wydaje mi się, że trzeba dodać jeszcze jakieś dodatkowe argumenty - nie tylko te które można "zaznaczyć". Przy odznaczeniu opcji przerwania kompilacji przy napotkaniu błędu kod kompiluje się - zostają tylko te błędy wymienione powyżej. Ścieżki również...
Witajcie. Mam taki problem. Jest napisany program i działa na uC(także kod jest chyba w pożadku) ale jak chce uruchomić debug przez openOCD to od razu wchodzi mi w: /* DomyĹ›lna procedura obsĹ‚ugi przerwania - nieoczekiwane przerwanie zawiesza mikrokontroler. */ static void Default_Handler(void) { for (;;); } Przypuszczam...
mitsubishi eclipse eclipse poradnik eclipse mitsubishi
alarm rozpoznac alarm celestion beyma diesel rozruch
vaillant naczynie przeponowe wymiana vaillant naczynie przeponowe wymiana
Mercedes W204 dekodowanie kluczyka FBS3 – CGDI MB, VVDI MB, programowanie, EIS, ESL Krups, DeLonghi – klocki na wyświetlaczu, samoczynna para, uszkodzona płyta główna ekspresu