Już problem został rozwiązany. Nie wiem jakim sposobem na płyce stykowej styki dalej od pinu PD3 nie chciały działać. Gdy podłączyłem urządzenie przerywające praktycznie wprost do pinu atmegi, przerwanie działa. Może coś zostało uszkodzone wewnątrz płytki stykowej. Dzięki za odpowiedzi....
Z problemem poradziłem sobie w 90% stosując sztuczki z wpisami hook w pliku ".gdbinit" oraz dodatkowym wpisem do pliku konfiguracyjnego openocd dla eventu "old-pre_resume". Chodzi o użycie "cortex_m3 maskisr on/off". Dopiero najnowsza poprawka do OpenOCD 0.5.0 z 28 czerwca dodała automatyczne włączanie/wyłączanie...
Szukałem już chyba wszędzie i próbowałem wszystkiego, więc ostatecznie zmuszony jestem założyć tutaj temat. Uczę się programować stmy na "rejestrach". Utknąłem przy próbie włączenia przerwań zewnętrznych na pinie PA1 (pull-up, zbocze opadające). Jeżeli chodzi o sposób testowania...
Witam zwracam się z prośbą o pomoc, poniważ utknęłem w martwym punkcie. Używam procesora MSP430f5419a. Jako toolchain wykorzystuję mspgcc(msp430-elf-*), mspdebug oraz Eclipse. Wszystko buduje się bez problemów, nie mam problemów z załadowaniem programu do procesora, program działa (wysyła...
skynet_2 -> co do kolorów to oczywiste, że to kwestia indywidualnych preferencji. co do znaczka # przed IF'em - to są polecenia preprocesora i działa to po prostu w GCC. U mnie akurat #if ( UART_INTERRUPTS_ON == 1 ) oznacza, że jeśli wcześniej zdefiniowana w pliku nagłówkowym...
OK, jakoś rozwikłałem tę zagadkę i udało mi się idpalić symulację w AVR Studio, nie wiem czy prawidłowo to zrobiłem ale działa bo w external tools configuration wpisałem po prostu jako location C:\Program Files\Atmel\AVR Tools\AvrStudio4\AVRStudio.exe a w working directory ${workspace_loc:/AVR...
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...
Zwarcie Vcc do GND pomogło, ale dopiero takie dłuższe zwarcie ( 5 sek). Wyświetlacz ocnkął się, wyświetla dane, ale !!! ciekawostka, zegar stoi. Załaczam kod, taki wprost z Eclipsa, bez bibliotek. Jestem w trakcie przeróbki z innego projektu, proszę o wyrozumiałość. /* * main.c ...
Witam, jestem początkujący w programowaniu ARMów, więc proszę o wyrozumiałość. Mój problem polega na tym, że program nie wskakuje do przerwania IRQ. Oczywiście mam wyzerowane bity I_BIT i F_BIT w CPSR, ustawionego VIC'a i w startupie skok do VICAddress. Pracuję w środowisku Eclipse...
Witam, Mam problem z debugowanie procesora LPC2478. Środowisko: postawione zgodnie z tutorialem ze strony Freddiego Chopinna czyli Eclipse (helios edition with HDT hardware debugging) + OpenOcd + Code Sourcery Lite edition Procesor: ARM NXP LPC2478 z kwarcem 12MHz Aplikacja: Na tym etapie...
Witam, Od dawna wiadomo sporej liczbie osób, że do programowania mikrokontrolerów AVR można wykorzystać sprzętowy programator oparty o prościutki ale jakże popularny układ FT232RL. W podstawowej formie pełni on rolę przejściówki USB/RS232 a przy okazji wystarczy w pełni do zaprogramowania...
Witam, Jestem w trakcie budowy komputera pokładowego na procesorze AtMega8 oraz na wyświetlaczu LCD LS020. Program który tworzę ma zrealizować podstawowe funkcję komputera pokładowego, takie rzeczy jak menu i możliwość nastawienia parametrów odpuszczam a jedynie chcę prawidłowo obsłużyć...
Witam, jako młody student potrzebuję małego wsparcia przy tworzeniu programu do sterowania obciążeniem małej turbiny wiatrowej. Działam na układzie AT90USB1287, program ma na celu w odpowiednim czasie podać obciążenie na turbinę, jako że turbina kręci się około 2000 obr/min postanowiłem...
(at)BlueDraco Włąśnie chciałem mu to napisać :). Pewnie myli prirtet przerwań DMA z priorytetem DMA. Ponieważ używa tajemniczych bibliotek to nic się nie da powiedzieć. na przykład przerwanie DMA przez inne przerwanie przerwanie moze wyłaczyć dma tylko jak zmieni rejestry DMA. Innej...
Popraw błąd w 76-tej linii programu. Sprawdź, czy nie ma zimnych lutów przy elementach C7 i R9. Błąd poprawiony, przy elementach C7 i R9 wszystko ok. Nadal nie działa. Dodano po 1 [syntax=c]/* hmc5883l lib 0x01 copyright (c) Davide Gironi, 2012 Released under GPLv3. Please...
Witam, Witam, posiadam płytę lm3s6965 ethernet eval board : Na początku napiszę co działa: 1. działa openocd (0.6.1) 2.1. program jest już wgrany do procesora 2.2. podpinam płytę do USB, jednocześnie załączam zasilanie 2.2. uruchamiam openocd 2.3. uruchamiam debugowanie...
Debuggowanie we flashu polega po prostu na tym, że kod który chcesz debuggować znajduje się w pamięci RAM. Zasadniczo - jeśli dobrze pamiętam - aby mieć kod w RAM zamiast we flash do debuggowania, wystarczy zrobić dwie rzeczy: 1. Zmodyfikować skrypt linkera, tak aby program był skompilowany...
Witam, Udało mi się uruchomić STM32 z OpenOCD przez Wigglera. Problem mi jedynie sprawia debugowanie programu w Eclipse. Program ładuję przez Makefile , wszystko wygląda ok: D:\Projekty\ARM\project>cs-make program "Programming with OPENOCD" openocd -d0 -f interface/parport.cfg...
Kol. Kaczor dziękuję za pomoc choć brak w książecce pełnych listingów nie był aż tak wielką preszkodą. Na początek interesują mnie pola struktury inicjującej licznik, dla przykładu : TIM_TimeBaseStructure.TIM_Period = 65535; TIM_OCInitStructure.TIM_Pulse = 10000; Takie zainicjowanie...
Witam. Chciałbym połączyć moją atmegę z komputerem. Jednakże, nie reaguje na sygnały wysyłane z Br(at)y terminala. Sygnał z kompa po przejsciu przez FT232 jest 5V. Czy to może być problem? (atmega 162 jest standardowo na 3.3V) Dodam, że atmega jest zasilana napięciem 5V. A oto...
Coś masz źle z tym eclipse kolego, zobacz - ja mam w Eclipse ładnie wszystko, i jeszcze zajrzyj sobie na dole AVR Device Explorer, przecież masz tam podane nazwy wszystkich rejestrów, wektorów przerwań - no wszystko co dotyczy procka który ustawisz - spójrz na zrzut ekranu z mojego Eclipsa dla...
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...
Należy "przypiąć" przerwania FreeRTOSa do wektora przerwań w projekcie - wywoływany jest SVC i tak właśnie ma być. 4\/3!!
Proszę, oto kod: [syntax=c] #include <avr/io.h> #include <avr/stdlib.h> #include <avr/stdio.h> #include "HD44780.h" #include "sterowanie.h" // ********* INICJALIZACJA *********** void Initalize(){ //----------- ŻARÓWKA------------ TCCR1B |= (1<<CS11)...
Witam. Opracowałem prosty pilot podczerwieni protokołu RC-5 na ATTiny44, z pięcioma przyciskami (Standby, Vol+/Vol-, Ch+/Ch-). Wszystko działa (nośna generowana z PWM na Timer0, wybudzanie przerwaniami na pinach, kody w pamięci programu, duże oszczędzanie energii), ale chciałbym jeszcze bardziej...
Mam zestaw ewaluacyjny HY-mini. Próbuję okiełznać obsługę karty SD i od początku same schody. Do zestawu dostałem zestaw przykładów i na ich podstawie coś próbuje napisać. Sęk w tym iż przykłady są dla uVision Keil a ja pracuje na Eclipse. SD_Init(); - SD_OK f_mount(0,&fs); - FR_OK f_open(...
A ja wam powiem, że z mojego punktu widzenia, tj osoby, która jest nowa w temacie stm, taki kurs byłby dobry po pewnymi warunkami. W temacie AVR spędziłem troche czasu,chociaż nie jestem specjalistą, ani nawet zaawansowanym graczem. Radzę sobie na własne potrzeby, głównie wykorzystując je...
W jakim sensie się rozjedzie? :) Co do stawiania od nowa, to widzę w sumie, że początkowo te wszystkie ustawienia to był jakiś horror, a po czasie jak muszę to wklepać jeszcze raz, to nie jest źle ;) Ten polecany pakiet to jest odpowiednik CodeSourcery? Czyli te wszystkie arm-none-eabi-...?...
adamusx Ma znaczenie i to duże. I nie w kwestiach mechaników to należy rozpatrywać tylko funkcji zdefiniowanych w plikach "startup_stm32f4xx.c", "system_stm32f4xx.c" i "system_stm32f4xx.h". Dla CM4 wygląda to tak: Startup wywołuje funkcję SystemInit(); Ta funkcja przy domyślnych ustawieniach...
Witam! :) Zanim wejdę w szczegóły chciałbym zapytać, gdzie znajdę jakiś kurs/poradnik tłumaczący od podstaw czego i dlaczego potrzebuję przy nowym projekcie ARM? Moje dotychczasowe obserwacje, to w miarę rozumiem: - CMSIS = ogólnie definicje dla rdzenia ARM - StdLib = biblioteki dla...
pobralem najnowsza paczke Wersja? :> Wklejony przeze mnie kawałek pochodzi z core_cmFunc.h V4.30 (20 oct. 2015) z CMSIS 4.5. Makefile nie jest Ci potrzebny skoro wybrałeś wtyczkę do Eclipse'a. Opcje sobie "wyklikasz" wedle uznania w ustawieniach projektu. Modyfikacja skryptu linkera to najpewniej...
W pierwszym podany przeze mnie kodzie wystarczyło zmienić metodę obsługi przycisku z "private" na "public" i aplikacja się nie zamykała. Mimo wszystko napisałem jeszcze jeden przykład: Gdzie indziej przeczytałem, że jdbc trzeba używać w zdarzeniach asynchronicznych AsyncTask, a jeszcze...
Witam Mam problem z czujnikiem HC-SR04. Walcze z tym programem i nie wiem czemu mam błąd z funkcją "soft_timers_init();" pokazuje mi błąd: "undefined reference to `soft_timers_init'" ktoś może wie o co chodzi ? I jeszcze chciałbym ustawić preskaler 16 ale również nie wiem jak to zrobić....
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...
Chyba tutaj dobrze trafiłem z pytaniem. Prośba do wszystkich o jakiś soft z polskim wraz z epromem do w/w telefonu Eclipse MT-450. Na początku wyswietlała się apteczka, potem bawiłem się jakimś softem :( telek zaczął wgrywac a ja mu przerwałem teraz wgrywałem jakiś eclipse_pl_path_l10_4raqa060...
Jesli jeszcze tego nie zrobiles to w pliku crt.s przy ustawianiu stosu uaktywnij przerwania dla trybu User Mode, czyli w CPSR nie ustawiaj bitów I i F. Ustawienie ich powoduje wyłączenie przerwań w danym trybie. Do tego ustaw odpowiednio rozmiar stosu dla trybów przerwania, u mnie to jest np. .set...
Witam! Proszę o podpowiedź dlaczego w kodzie: unsigned int i, imax, (...) int obsluga_przerwania1() { AT91C_BASE_TC1->TC_SR; i++; if (i > imax) { i = 0; *AT91C_TC1_CCR = 0x2; } AT91C_BASE_AIC->AIC_EOICR = 0x0; } int...
Witam, Napisałem program, w którym do odliczania czasu używam SysTick'a i przerwania od niego. Gdy skompiluję i zapiszę program do pamięci Flash, program ten działa jak należy i możliwe jest jego debugowanie. Jeśli skompiluję i wpiszę program do pamięci RAM, to program nie działa poprawnie,...
mogę ci podesłać uruchomiony przykład mass storage - ale na bibliotekach st. Uruchomiłem ją parę dni temu - też z tym trochę walczyłem. Przykład działa pięknie - wzorowo. U mnie wogle nie uruchamiały się przerwania. Moja aplikację kompilowałem w Eclipse i codesourcery. Daj...
Od kilku dni próbuję uruchomić FreeRTOS i zamigać diodami na zestawie Hymini z procesorem STM32F103VCT6. Używam Eclipse Juno oraz Sourcery G++ Lite 4.6.3. Projekt kompiluje się poprawnie. Wcześniej program zatrzymywał się na przerwaniu HardFault_Handler. W pliku FreeRTOSConfig.h dodałem...
Witam. Jestem zupełnie nowy w programowaniu STM32, korzystam z zestawu 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...
Mam nadzieję, że to ostatnie pytanie w tym temacie. Przedefiniowałem w config.h wyjście diody na PB14, oraz podłączyłem odpowiednio. Nadal jednak dioda nie miga. Z Any ideas ? :D
Środowisko: - LPC2148 na płytce ZL9ARM Kamami - JTAG Freediego - Eclipse Luna - Open On-Chip Debugger 0.8.0 (2014-04-28-08:42) - GNU gdb (GNU Tools for ARM Embedded Processors / bleeding-edge-toolchain-140708) 7.8.50.20140708-cvs - projekt łopatologiczny (Timer0 +miganie diodą) W sytuacji,...
W sumie doszedłem do tego że procesor w sumie nie wisi, tylko MAX485 się przestawia na nadawanie i tak zostaje. Kod w którym tylko zmieniam kierunek transmisji. Jest to tak że cały czas jest odbiór, a jak otrzymam jakiś pakiet, i na niego chce odpowiedzieć, najpierw go przygotowuje w buforze,...
Bry, Mam do przerobienia zadanie z Assemblera obsługujące przerwanie T0 na C (Eclipse, SDCC). Niemniej jednak na zajęciach korzystamy formalnie z książki P. i P. Gałka (pracujemy też na DSM-51). Stąd moje dwa problemy (jeżeli temat umieściłem w nie najlepszym dziale, proszę o przeniesienie): 1....
Witam, jakiś czas temu zacząłem zabawę z AVR no i w końcu natrafiłem na problem, którego nie mogę rozgryźć. Mam w programie (multipleksowany wyswietlacz 7 seg) linijkę o treści : DOKŁADNIE o ten zapis, wiem ze lepiej uzyć całego portu a nie mieszać jak powyżej D i C, ale nie rozumiem...
Steryd3 Korzystam z Eclipse'a, tam w parametrach projektu wybieram typ mikroprocesora i taktowanie, tak przeczytałem w książce Kardasia, choć rzeczywiście prawdopodobnie nie zmieniam w ten sposób w ogóle taktowania i źle zrozumiałem autora :| Z trybu CTC kiedyś już korzystałem, jednak...
Udało mi się odpalić symulację (co oznacza, że udało mi sie przywrócić Atmel Studio do życia, Eclipse powoli mnie dobijał, nie znalazłem rozwiązań problemu z Atmelem nigdzie na necie, więc jakby co, mogę pokrótce opisać rozwiązanie ;) ) Do rzeczy: Z symulacji przeprowadzonej na...
Witam, Uzywam stm32Cube do generowania kodu dla SW4 ktorego uzywam w eclipse. Staram sie uwuchomic przerwania RX dla CAN1, ale nie moge tego uruchomic, program counter nigdy nie wchodzi do obslugi przerwania. Wysylanie dziala. Testowa procedura dla sprawdzenia wysylania: [syntax=c]CanTxMsgTypeDef...
Ja nie lubię STM32, a STM32 mnie! Muszę coś zrobić na STM32 i robię to w Truestudio. Na razie proste testy na przypomnienie sobie STMów i wejście w C++ i na dzień dobry ściana! Po kompilacji w tablicy wektorów przerwań jest tylko adres na DefaultHandler. Mimo tego, że nazwa funkcji obsługi...
Witam Wątpie, że mi ktoś pomoże ale cóż zależy spróbować. Nie mogę włączyć obslugi przerwań w moim procesorze. wiem że kod jest napisany prawidłowo gdyż testowalem na innym kompilatorze. Chodzi o plik startup, którego w sumie nie rozumiem. A może ktoś zna jakieś źródła wyjaśniające...
Witam, Czy ktoś próbował może wygenerować przerwanie EXTI_Line18 (void USBWakeUp_IRQHandler(void)) na mikrokontrolerze STM32F103RBT6? Chciałbym się dowiedzieć jak tego dokonać. Próbuję się z tym uporać od kilku dni i jakoś nie wychodzi. Konfiguracja EXTI_Line18 [syntax=C] //External...
Witam serdecznie! Chciałabym na wstępnie nadmienić,że dopiero zaczynam przygodę z elektroniką. W związku z tym z góry proszę o wybaczenie, jeśli mój kod to masa banialuków. Próbuję zaprogramować uC ATmega168. Chciałabym nauczyć się poprawnej obsługi timerów. W związku z tym próbowałam...
(at)szczywronek LCD_WriteText nie ma żadnych opóźnień od innych przerwań. Funkcja zawiera jedną instrukcję...która pośrednio odnosi się do jeszcze 3 innych funkcji. Jednak żadna z nich nie wykorzystuje przerwań. Tak, posiadam debugger. Działam na openocd+eclipse oraz startupie Freddiego. ...
(at)Piotrus_999: Tak, wiem, czytałem, ale najprościej jest sprawdzić, czy przerwanie działa i czy do niego wchodzi (po prostu led'a zapalić w przerwaniu, tyle). Po wywaleniu SW4STM i zainstalowaniu czystego Eclipse i skonfigurowaniu według tutoriala od kolegi Freediego przerwania od linii zewnętrznych...
Witam, właśnie zacząłem przerabiać kurs ze strony układ na jakim pracuje to stm32f103c8t6 w środowisku Eclipse. Niestety moja nauka stanęła na przerwaniach od przycisku. Mianowicie mimo wciśnięcia przycisku przerwanie się nie wykonuje. Kod programu: Czy ktoś wie w czym może...
Zgadzam się, reset eepromu prawie na pewno pomoże. Mi jak nie pomagało to kilkakrotnie włączałem telka i przy uruchamianiu wyjmowałem baterię, aby przerwać włączanie. Gdy się trochę pobawiłem baterią to soft sam się resetował do factory settings i wszystko grało.
Witam Zakupilem zestaw uruchomieniowy ZL25ARM+ ZL24ARM w sklepie Kamami. Mam problemy z obsluga przerwania. Najprosciej mowiac chcialbym aby po zgłoszeniu przez watchdog'a zakonczenia liczenia (Timer Mode). Jednak tak sie nie dzieje i nie wiem w czym tkwi problem. Wrzuce tutaj troche kodu: void...
Przerwanie jest umieszczane pod 0x04 (sprawdzilem plik *.lst). Czy problemem moze byc brak inicjalizacji plikiem startup.as? Wczesniej pracowalem w srodowisku Eclipse i tam dodawal sie on automatycznie - pod MPLabem chyba nie jest on dodawany - w kazdym razie nie widze tego :( BF
nie chodzi mi o te rejestry, te sa nieistotne (nawiasem mowiac mozna je oczywiscie podgladac). istotny jest dla mnie podglad rejestrow kontrolujacych peryferia i rdzen, czyli wsztystkich lokacji w pamieci, ktore odpowiadaja za: przetworniki, porty, interfejsy, przerwania, ... 4\/3!!
Zassaj z mojej stronki ( www.freddiechopin.info) z sekcji Download -> ARM -> Przykłady plik dla lpc2103 i zerknij tam do pliku default_handler.s. Jest tam zrobiony "łapacz" przerwań, które nie są nigdzie indziej zdefiniowane. Zasadniczo chodzi o fragmenty typu: // Undefined instructions .weak Undefined_Handler ....
Uruchomił ktoś przerwania na LPC2478? Albo na LPC2103 ale w środowisku CodeSourcery/Eclipse (chodzi mi o te przykłady Freddiego Chopina)? Bo ja już się meczę od dawna i nic działającego nie uzyskałem.
Nie sądzę. Ja bym testował tak: 1. Dobrą ramkę zapisał we flashu i wysłał do PC przez uart0 2. Dobrą ramkę odebrał przez uart3 z PC i porównał z tym z flasha. Jeśli oba testy byłyby pomyślne, zastanowiłbym się nad zastosowaniem przerwań. Czekanie na wysłanie i odebranie znaku...
Jeżeli skok jest z przerwania to HardFault jest spowodowany tym, że zmieniasz wskaźnik stosu w obsłudze przerwania.
W sumie to przesadziłem z tym z tym czasem... to dlatego że usb blokuje mi wszystko.. Nie chcąc żeby przerwanie blokowało mi program zrobiłem coś innego. Wyłączyłem przerwanie od Endponitu read. USB_Recive_Bulk_Data() mam w głównym programie main. Program sprawdza czy są dane, jak są...
Witam szanownych kolegów. Mam problem w przypadku wgrywania nowego oprogramownia komendą load. Konsola wypluwa mi coś takiego: target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x61000000 pc: 0x08002b90 Info : Padding image section 0...
Do tego samego doszedłem z tymi optymalizacjami. Rzeczywiście hex który podesłałem był skompilowany z opcją optymalizacji Os, ale... kod z tych pierwszych plików działał na dowolnej optymalizacji a z tym drugi miałem te same problemy co ty. Program kompilowałem na tym twoim makefile jak...
Witam. Czy ktoś może rzucić okiem na mój program i stwierdzić gdzie jest błąd. Siedzę już 3 dni i nie mogę go znaleźć. Posiadam płytkę Butterfly, dolutowałem kwarc zegarkowy i dwa kondensatory o pojemności podanej na schemacie który dostałem z płytką. Po wgraniu hexa do procesora...
Witam, mam taką funkcję (z książki Bryndzy): static void Uart0Gets(char *str) //Odbior znaku przez rs232 z terminalu { char c; do { while(!(U0... & U0LSR_RDR)); //Czekaj na znak c = U0RBR; //Odbierz znak *str++ = c; //Zapisz znak do bufora while(!(U0LSR...
Dowolnie długie przerwanie? Czemu nie, to przecież tylko procek. Jeśli zechcę mieć przerwanie trwające pół sekundy, to powinienem to móc zrobić. Zablokować co trzeba, a reszta niech się dzieje w tle. A o wyjątkach poczytałem, co znalazłem. Niestety, tak jak Freddie Chopin powiedział,...
99% osób używa po prostu DOBRYCH projektów, a ty na siłę chcesz uruchomić projekt, który po prostu jest kiepski. 1. W skrypcie linkera dopisz sobie gdzieś na początku ENTRY(_startup); (co w sumie nie jest do końca poprawne, ale tym sposobem jest najprościej) 2. W jakimś pliku z kodem...
wszystko jest w pliku armint No właśnie nie wszystko. Nie ma obsługi przerwań. Przerwanie się zgłasza, procesor chce je obsłużyć, ale nie wie jak więc program się wykrzacza.
no dobrze ze sie nie widzimy bo po takim czyms to bym Ci w oczy nie mógł spojrzeć :P, dałem 1024 na __main_stack_size i powiem tak, co do tego przerwania UARTU, jest wyzwalane , breakpoint sie zatrzymuje, mogę podejrzeć status, i puścicć dalej, i wsztyko było by git majonez gdyby nie to że...
a używasz gdzieś przerwań ?
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...
To wykorzystaj timer do generowania jednego PWM. Silnik pewnie dostaje sygnał w okolicach 20kHz. To na przerwaniu zrobisz. 1MHz już nie. Inny sposób to zewnętrzny generator.
Korzystasz w ogóle z przerwań? Bo jeśli tak, to musisz raczej dla przerwań zadeklarować jakiś rozmiar stosu w skrypcie linkera. Jeśli nie, to możesz olać poprawki tablicy wektorów. Zasadniczo do projektu musisz dodać jeszcze startup (startup.S + jeden wymagany nagłówek hdr_cpsr.h) i tablicę...
Twój układ ma jakieś zworki do wybierania z której pamięci ma działać? Bo gdy ładujesz program do flash, to wartość PC sugeruje, że całość chce działać z RAM, więc faktycznie jest problem. Do tego program dla RAM masz skompilowany dla adresów od 0, natomiast program dla Flash od 0x100000,...
Mam problem z uruchomieniem programu na mikrokontrolerze. Napisałem program obsługujący RTC i wyświetlacz LCD. Program został uruchomiony przez GDB Hardware Debugging i działa poprawnie. Następnie plik projekt.hex wgrywam przez J-Flash ARM i również wyskakuje informacja, że operacja przeprowadzona...
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...
Pobierz z mojej strony przykład dla LPC2103 i przerób go dla Twojego układu: - w skrypcie linkera ustaw prawidłowe adresy i rozmiary pamięci - w startupie nic nie musisz zmieniać - w tablicy wektorów nic nie musisz zmieniać jeśli nie korzystasz z przerwań, jeśli z nich korzystasz poprzez...
dlaczego instrukcja: LDR PC, IRQ_Addr jest w komentarzu usuniecie komentarza powoduje ze program nie dzialo (nie rozumiem tego fragmentu pliku) Wyjaśnię to o wiele prościej niż kolega wyżej :D Ta instrukcja: LDR PC, [PC, #-0x0FF0] to jest wersja tego czegoś: LDR PC, IRQ_Addr...
Szkoda trochę, że w Practical Guide nie opisali choćby ogólnej metody tworzenia przerwań pod tym OS. Bo nie ma czegos takiego. Jesli twoje przerwanie moze zmienic kontekst (czytaj przelaczyc zadania) to sam musisz o to zadbac. Nie kazde przerwanie musi zmienic kontekst a poniewaz jego zachowanie...
Czy da się wyżej wymieniony uC wprowadzić w tryb sleep i potem wybudzić przerwaniem ?? Nie jest mi potrzebna ciągła praca uC, a do tego jeszcze wszystko jest zasilane baterią.
Witam! Próbuję sklecić sterowanie silnikiem DC na Atmedze 16 z wykorzystaniem sterownika L293D. To ma być symulacja sterowania roletami na makiecie, czyli potrzebuję zmieniać biegunowość silniczka, a także chciałem mieć kontrolę nad prędkością (czyli wypełnieniem PWM). Zaimplementowałem...
Oczywiście, że się da. Teoretycznie ;). Wystarczy wziąć "nierówny" kwarc. Jego wartość powinna dzielić się odpowiednio przez dwa podniesione do odpowiedniej potęgi. Tak aby np. przerwanie przepełnienia od licznika było wywoływane dokładnie co 1 sekundę, albo inną jej część (zdatną...
Jak to ta sama seria to nie musisz zmieniać wektora przerwań, ale w skrypcie linkera wypadało by pozmieniać rozmiary pamięci i powinno być ok.
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ć...
No i po co włączasz przerwanie? 4\/3!!
dzięki Freddie Chopin to już się wyjaśniło dlaczego tego nie widziałem: już to miałem ustawione na 1024. Problem miałem gdzie indziej i już go w sumie rozwiązałem. Mam jeszcze takie pytanie odnośnie sprawdzenia ile czasu zajmuje przerwanie. Mam takie przerwanie wyzwalane TIM1: void...
Dzięki za odzew Freddie, Rzeczywiście w tej chwili timingi są dość wyżyłowane ale jak wspominałem nawet z nimi czasami się uruchamia i działa bardzo sympatycznie szybko. Nie mniej jednak już od początku próbowałem z "typowymi", wolnymi a nawet bardzo wolnymi ustawieniami FSMC jak i przerw...
FreeRTOS potrzebuje, żeby te przerwania były naked, czyli żeby kompilator nie generował ani prologu (zachowania rejestrów i stanu) jak i epilogu (odtworzenia rejestrów, stanu i powrotu z przerwania) - tym wszystkim zajmuje się sam FreeRTOS. W Twoim przypadku następowało przepełnienie stosu,...
Ok. Dalsze wieści z frontu. Olałem debugowanie z linii poleceń i skoczyłem od razu do eclipse'a. Ku mojemu zdziwieniu wszystko działa pięknie. Dzięki za pomoc. W razie problemów będę pisał. Pozdrawiam. Dodano po 2 "Stepowanie" przez wektory przerwań nie do końca jest dobrym...
no tak racja może zamieszczę cały kod [syntax=cpp] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_PIN (1<<PC7); #define LED_TOG PORTC ^= LED_PIN; #define LED_ON PORTC |= LED_PIN; #define LED_OFF PORTC &= ~LED_PIN; #define...
Ok, więc sprawa wygląda tak: program wpada w przerwanie lecz urządzenie nie jest nadal rozpoznawane przez komputer. Wielkości stosów zostały ustawione na 4096. Podczas debugowania tego samego kodu przez keila i Eclipse znalazłem gdzie jest problem, wyglądał on dość łatwy, dopóki nie...
Jeśli chodzi o przerwanie od tim2, to napisałem w poście powyżej nie do końca prawdę. Kod głównego programu jest wykonywany, a gdy zatrzymam procesor, program się zatrzymuje na tym rozkazie ktory mial wykonać. Następnie debugując <Step into (F5)>, procesor zaczyna wykonywać przerwanie...
[syntax=c]ISR(TIMER0_OVF_vect) { dual... dualLed_show(uint8_t val) { if(val < 100) { OFF_ALL ; static uint8_t i; if(i) { ON_DIG1; show_d... / 10]); i = 0; if(dp1) ON_SEG_P; } els...
Masz jakiś moduł, np od i2c - plik i2c.c zawiera funkcje i zmienne, plik i2c.h zawiera prototypy funkcji i zmienne globalne z "extern". Jeśli nie masz modułów w formie .c + .h to masz jeszcze więcej problemów. Dlaczego uważasz że dużo zmiennych gloalnych to dużo problemów ? To jest...
dondu: Ja wcale tego pisać nie muszę :-) Po prostu zastanawiam się skąd taka maniera bierze. Ale dzięki za dbałość o mnie. Właściwie to ciekawsza byłaby dla mnie odpowiedź niż zlikwidowanie tej maniery. Moim zdaniem z braku umiejętności posługiwania się timerami, czyli po prostu...
Ustawiasz bit zezwolenia na przerwanie TXCIE, a gdzie masz procedurę obsługi tego przerwania? Po odesłaniu znaku flaga TXC zostaje ustawiona i ze względu na brak procedury obsługi tego przerwania program najprawdopodobniej startuje od początku. Nie ustawiaj bitu TXCIE lub napisz dla tego...
Witam, Po otrzymaniu przerwania od zewnętrznego przetwornika wchodzę do funkcji: void EXTI4_IRQHandler(void) { int b; b = c+d; //inna_funkcja(&b); if(EXTI_GetITStatus(EXTI_Line4) != RESET) { EXTI_ClearITPendingBit(EXTI_Line4); } } Program przechodzi przez dwie pierwsze instrukcje...
Bierzesz przykładowy projekt z mojej strony, wrzucasz do tego FreeRTOSa - czyli dodajesz katalogi FreeRTOSa do odpowiednich pól w Makefile: [syntax=bash]# additional directories with source files (absolute or relative paths to # folders with source files, current folder is always included) SRCS_DIRS...
Linijka : [syntax=c]volatile struct st_can __evenaccess * can_block_p;[/syntax] oznacza definicję wskaźnika o nazwie can_block_p, na strukturę typu st_can. Linijka: [syntax=c]can_block... = (struct st_can __evenaccess *) 0x90200;[/syntax] inicjalizuje wskaźnik can_block_p adresem 0x90200...
Bardzo serdecznie dziękuję wszystkim Kolegom za zaangażowanie i okazaną pomoc. Szczególnie mocno zaś chcę podziękować Koledze IS, który poświęcił mnóstwo czasu żeby pomóc mi na PW. Stos udało mi się odpalić. Zasadniczo wszystko ruszyło. Jednak pojawił się niepokojący objaw. Zrobiłem...
Trochę sam sobie odpowiadam ale nic może komuś się to przyda. Tymaczasowym rozwiązaniem mojego problemu jest podmienienie funkcji Suspend w pliku usb_pwr.c z: [syntax=c]void Suspend(void) { uint32_t i =0; uint16_t wCNTR; uint32_t tmpreg = 0; __IO uint32_t savePWR_CR=0; /* suspend preparation...
Skorzystaj z mojego skryptu linkera - ten który masz jest niewystarczający. W artykule nic nie pisałem o zastępowaniu skryptu linkera innym... Przy okazji: dorzucając FreeRTOS'a do projektu, w makefile'u wystarczy dodać ścieżki do źródeł systemu, czy wymagane są dodatkowe informacje dla...
Według mnie najlepsza z rodzin to STM32 rdzeń M3. Robię wszystko na gołej płytce z ZET6 (jeden z wyższych modeli) i uwzględniam ograniczenia procesorów docelowych, następnie portuje kod zmieniając tylko target i ew kwałki kodu (startup, wektory przerwań) i wszystko śmiga. Biorąc pod...
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ń...
Weź tylko poprawkę na to, że część kodu MUSI być w pamięci flash - wektory przerwań i sam kod który robi kopiowanie... Najprościej podzielić text na dwie sekcje - jedna (z wektorami i startupem) jest tam gdzie zawsze, druga (z całą resztą) - w RAMie. Dla niewielkiego ułatwienia zabawy...
A posiada ktoś może skrypt linkera razem z vektorami przerwań dla lpc2468? Czy raczej trzeba samemu sobie zrobić?
Witam, podepnę się pod temat bo w podobnej konfiguracji działam ze swoją płytką, czyli (całość na x64, win7): - Eclipse Kepler (z GDB Hardware Debugging 7.2.0 + Zylin 4.18.1) - BET-131005 od Freddiego - Coreutils - openocd-x64-0.7.0 - płytka STM32F4Discovery Zaimportowany i skompilowany...
I2C jest rygorystyczne czasowo. Inne przerwania mogą powodować błędy. Zrobić I2C na przerwaniach o najwyższym priorytecie. Uchronić przed błędami powstałymi z HOR-PLUG. Np cykliczne pytanie i resetowanie I2C po konfiguracji sprawdzenie flag oraz stanu pinów.
Zrób dwa bufory i operuj na nich w trybach "ping-pong". Jeden wypełniasz w przerwaniu, na drugim sobie coś robisz w programie głównym. Jak skończysz, to go "zwalniasz" i czekasz aż przerwanie "przydzieli" Ci ten drugi, jednocześnie biorąc dla siebie ten pierwszy. 4\/3!!
Spróbuj ograniczyć problem do minimum, czyli daj TYLKO ten test w programie (i nic więcej), a jak zadziała to dokładaj po kolei inne elementy. Nie masz jakieś alokacji/dealokacji w przerwaniach lub innych wątkach w trakcie tego testu? 4\/3!!
Witam, wystarczyło wyrzuć wszystkie pliki z tego od lpc i wrzucić te od stm32f103. Teraz już nie mam błędów :). Muszę dokładnie przeanalizować różnice. Dzięki wielkie koledzy. Przy okazji mam jeszcze jedno pytanie dostaje takie oto warningi: Description Resource Path L...
Ustawiłeś stos dla przerwań w skrypcie linkera? Dodałem tę deklarację ale i bez niej funkcja obsługi przerwania jest poprawnie przypisana w tabeli wektorów. __attribute__ nie ma nic wspólnego z tym czy funkcja trafi do tablicy wektorów czy nie, za to wpływa na fakt, czy taka funkcja...
Chyba cię nie do końca posłuchałem Marek_Skalski ale zaczęło działać w miarę moich oczekiwać. Wszystko co złe praktycznie było tak jak napisałeś czyli w konfiguracji DMA. W trybie ciągłym ( a taki był mi potrzebny ) nie trzeba resetować flag. Podwójne buforowanie będzie wręcz...
Dlatego wywal tę bibliotekę z tego projektu. Gdy to zrobisz błędów nie będzie, a program na ATmega8 na pewno zadziała. Kompilator krzyczy o to, że w kilku miejscach programu zdefiniowane są funkcje obsługi przerwań od UART. W kodzie Kol. dondu ma to miejsce bezpośrednio w pliku main.c: [syntax=C] ISR(USART_RXC_vect)...
No to szukaj błędu w ustawieniach zegara - skąd bierzesz przebieg wejściowy, częstotliwość (sprawdź czy dobrze ustawiona w module startowym), wywołanie SystemCoreClockUpdate itp... Prosty test: zaprogramuj timer i procedurę przerwania od niego an miganie diodą z częstotliwością 1Hz i...
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,...
Witam, jestem w trakcie wykonywania ćwiczeń z książki Mikrokontrolery STM32 w sieci Ethernet na zestawie uruchomieniowym ZL29ARM, z programatorem j-link edu, w środowisku eclipse (a konkretniej System Workbench for STM32 z pluginem do obsługi j-link). Aktualnie zawiesiłem się dłuższy czas...
Witam, Problem polega na tym, że po dodaniu do projektu bibliotek FreeRTOS'a i "poprawnym" jego skonfigurowaniu mam problem z SysTickiem i jego przerwaniem. Samo w sobie przerwanie działa poprawnie. Są zgłaszane przerwania co określony czas jednak taski nie są w stanie się przełączać....
Witam, Moja konfiguracja: Eclipse, bazuje na przykładzie od freddiego, Linaro z 28.IX, optymalizacja -O0, [syntax=c] __main_stack_size = 2048; __process_stack_size = 2048; rom (rx) : org = 0x08000000, len = 64k ram (rwx) : org = 0x20000000, len = 20k[/syntax] [syntax=c]void TIM3_Conf(void) { TIM_TimeBaseInitTyp...
Próbuję wykorzystać EEPROM w moim programie, w tym celu napisałem sobie próbny kod, który powinien wyświetlić mi na wyświetlaczu dwie jedynki. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> // bibliotek...
W nowszych wersjach przykładów wszystkie stosy były zerowane, a wiec po "dłuższym" czasie działania swojego programu możesz sobie podejrzeć pamięć i po prostu zobaczyć ile jest wciąż wyzerowane i zmniejszyć dany stos o tą wartość (zostawiając sobie jakiś tam margines bezpieczeństwa)....
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.... zakomentowaniu program ląduje w Default_Handler(); W projekcie...
Właśnie nie używam żadnych przerwań. Jest pusta pętla while(1) w main i tyle. W cortex-ie M0+ tak kiedyś miałem, że zatrzymał mi się w tym default handler, ale właśnie w chwili gdy chciałem wykorzystać przerwanie od timera i coś było nie tak w samej tablicy wektorów przerwań. Dlatego...
ta funkcja ma obsługiwać przerwanie pomiędzy przesyłaniem danych a linijka niżej ma przesyłać dane pierwsze pole to wyjście, które wybrałem w cube potem jest miejsce z czego brać dane a jedynka na końcu że po jednym bicie
Witam. Mam problem z programowaniem pamieci FLASH w poziomu programu. Uzywam biblioteki peryferyjnej od ST, ale robiłem tez wlasne procedury. Od czasu do czasu pojawiają sie błedy programowania - niektóre komorki nie zapisuja sie lub zapisują sie błędnie (przed zapisem weryfikuje czy komórki...
Witam, używam nakładki SW4STM32 na Eclipse pisząc wyłącznie na rejestrach na płytkę Nucleo STM32F411RE. Bazuję na poradniku: [url=][STM32][C] - Poradnik dla początkujących (bez bibliotek) Wszystko szło świetnie do czasu rozdziału o EXTI,a mianowicie kod działa, jednakże przerwanie się...
Uważam, że aplikację w wersjach debug i release na leży umieścić pod takim samym adresem. To bootloader zrób w dwóch wersjach (debug - release) (albo w jednej wersji ale inteligentniejszy - np sprawdzający jakiej bajty w aplikacji i stwierdzający debugujesz czy tez nie). Jeżeli nie masz...
Czy muszę stosować przerwania? Nie. Mógłby ktoś podesłać przykladowy program obsługujący czujnik? Wątpię. Jak cos już napisałeś to nie ma problemu aby pomóc, ja nie masz nic, to albo szukaj w sieci gotowca albo próbuj coś napisać. napisaniem programu w eclipsie w C Czemu...
Eee.. zmieniłeś w międzyczasie OSa? Wygląda trochę jakbyś strzelał na oślep, coś nie działa, to sruu wszystko, kopiuj/wklej inny przykład itp. Trochę jakby bez zastanowienia co konkretnie może nie działać... Dodano po 1 Kurka, to odpal sobie DMA, odblokuj przerwanie od Transfer...
Witam. Mam za zadanie zaprojektowanie i oprogramowanie protokołu komunikacyjnego pozwalającego na odczyt/zapis zadanych parametrów. Komunikacja z PC ma się odbywać po USART z użyciem przerwań i bufora kołowego. Jeżeli chodzi o bufor to będę opierał się na tej stronie: Nie wiem od czego...
Opóźnienie dałem aby sprawdzić czy jest przerwanie. Finalnie ma po przerwaniu zapalić się.
Ktoś zliczał impulsy przerwać programowo? Jaką częstotliwość maksymalną można zliczyć?
IDE może mieć wpływ na działanie kodu w ESP No nie do końca. Na nowym eclipsie podkreślał ale to od wersji idf zależało czy działa czy nie. Bo na nowym eclipsie ale starym idf podkreślał ale program działał. Ale w której wersji funkcji callback? Wszystko działa mam na myśli...
kurcze przyznam sie ze nie jestem pewny jak to sprawdzić... w eclipse mam tak Eclipse Platform Version: 3.3.1.1 Build id: M20071023-1652 Dodano po 5 w pliku version.txt znalazlem takie cos This build of yagarto use the following versions: binutils: 2.18 gcc:...
No to chyba czas się przygnać, że ja nie znam się na ARMach i na C ;p Fajne uczucie pomagać komuś w rzeczy na której się nie zna ;p Ja dopiero zaczynam. CodeSourcery/OpenOCD/Eclipse/Wiggler/LPC...
Eclipse zainstalowałem i skonfigurowałem i wszystko działa. Jeśli otworze projekt kompiluje się wiec eclipse jest ok, tylko ze to jest pod procesory lcp. Chciałbym teraz użyć procka at91 i tu pojawia się problem a mianowicie, mam już parę sampli( nie mojego autorstwa) które działają pod...
#define F_CPU 1000000 Koledzy uczyli mnie, aby nie definiować tej wartości w kodzie. Jeżeli używasz AVR Studio/Eclipse ustawiaj ją zawsze we właściwościach projektu.
Dzięki wielkie. Fakt - zgubiłem to w trakcie. Tylko, nadal przerabiam temat i ustawienia, żeby otrzymać 1s. Bo nadal wyprzedza LED :P Ale naprzykład; Zmieniłem fusebity na 1MHz (zegar wewn), przerobiłem kod (prescaler) i o dziwo, mam 1 sekundę na LED (przez minutę żadnej różnicy),...
Ale tutaj volatile nie jest potrzebne ponieważ zmienna licznik jest wykorzystywana tylko w przerwaniu a nie w przerwaniu i programie głównym, dlatego to nic ci nie zmieniło. Za to mogę ci powiedzieć ze 100% pewnością że program napisałeś poprawnie i na 100% działa - a ty co najwyżej źle...
Odpowiednie skonfigurowanie eclipse rozwiązuje problem. Polecam skorzystanie z gotowego-skonfigurowanego eclipse- edytor lepszy niż AVRStudio. A tego ostatniego używać do symulacji ;)
A ja polecam Eclipse. Z sei() nie ma problemu. Poza tym działa i w Windows i Linux (u mnie na Ubuntu).
Nie zrozum mnie źle, nie uważam, że twój sposób jest błędny. Ale warto podyskutować na temat ciekawszy niż skróć przewody, żeby zmniejszyć zakłócenia :) Zgadzamy się że należy w funkcję ująć najmniejszy wielokrotnie wykorzystywany fragment kodu, prawda? Reszta to kontrowersje....
kompilator mi tego nie łapie, pracuję na eclipse, a kompilator to chyba z codewarriora jest - standardowe rozwiązanie do kinetisa.
Witam! Na wstępie chciałem powiedzieć że postanowiłem się przerzucić z Arduino na coś ambitniejszego więc postanowiłem nauczyć się programowania mikrokontrolerów w czystym C. Program ciągle wybija błąd. Nie wiem co robie źle. Proszę o pomoc w lokalizacji błędu. Zawartość...
Nie napisałeś nic o środowisku programowania. Jeśli to jakaś samoróbka Eclipse, stawiam na błędną konfigurację stosu/stosów. żeby poprawnie obsłużyć przycisk w przerwaniu portu, musisz i tak mieć przerwanie timera i wyłączać przerwanie przycisku po jego przyjściu, a potem włączać...
No tak, przejrzałem pdf i zapomniałem o kodzie na dole :) Już studiuje. Czy w Eclipsie istnieje możliwość podglądu jednocześnie dwóch kodów tego samego projektu obok siebie ?