http://obrazki.elektroda.pl/9341091800_1... 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 AVR'ków....
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.
Fredie, Prawie, że poszło. Stary projekt się skompilował, wgrałem działa. Niemniej projekt był oparty na jakichś starych twoich przykładach jeszcze z roku 2009. Chciałem zaktualizować projekt za pomocą twoich najnowszych przykładów, wobec czego wywaliłem podkatalog Setup z plikami hdr_special_registers.h, startup.S, stm32f103ve_rom.ld, vectors.c oraz...
teraz troszeczkę mi się niby rozjaśniło ale jednak to drugie wyrażenie mi nie działa - dziwne! a pierwsze właśnie działa: #define us(num) ((num)*(F_CPU/1000000)/LOOP_CYCLES) i to mnie najbardziej dziwi ;) (może to zależy od jakichś tajemniczych ustawień w makefile - ale to dla mnie czarna magia te "ptaszki" jak narazie - a ponieważ używam eclipse -...
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ł...
to nic niestety nie zmienia. Dalej nie odpala się przerwanie INT1. nie jest problemem złe ustawienie rejestru MCUCR, tak myślę.
Komentarze do kodu sam pisałeś? Błąd kompilatora: w AIC_Configure_IRQ pierwszy argument to jak napisałeś "numer urządzenia peryferyjnego" a ty podałeś w kodzie wskaźnik do PITC. PIT to nie peryferium tylko część kontrolera systemowego i jego przerwanie jest obsługiwane po SYSTEM_ID. Poza tym w AIC_Configure_IRQ AIC->AIC_IECR = mask;// !!! tutaj powinieneś...
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...
VICVectCntl0 = (1<<4)|(1<<5); Czy w LPC23xx jest w ogóle taki rejestr? Wg mnie takowego rejestru w LPC23xx i LPC24xx NIE MA. Moduł VIC jest generalnie zupełnie różny w LPC21xx/LPC22xx i w nowszych układach - w tym Twoim. W "nowych" rejestry są przypisane na sztywno - Timer0 ma na sztywno kanał 4, a więc i rejestr adresu musi być 4 itd....
No teraz dobrze, ale czy to Ci w ogóle potrzebne? Zerujesz zmienną prze wejściem w pętle ... A wracając o głównego wątku, jeśli masz włączone przerwanie to jego czas dodaje się do tych 1780us, być może wiele razy na bajt (bo częstotliwości oscylatora nie podałeś) i sprawdzasz PD2 w niewłaściwym czasie ... Albert
(at)A.T. Debugowanie nie zadziała Ci z Soft Devicem (to co masz na początku flasha). Stos działa mniej więcej tak w przypadku niespełnienia zależności czasowych (które pojawiają się podczas debugowania przykładowo). Więc jeżeli chcesz debugować to: a) bez Soft Device b) możesz ręcznie wyłączyć przerwanie od SD W obu przypadkach nie będziesz miał oczywiście...
Proszę o pomoc szczególnie freddiego chopina ponieważ jest autorem plików linkera, startup-a i wektora przerwać(vectors.c), które w innych projektach jak dotąd działałają mi niezawodnie. Zajrzyj do skryptu linkera, przeczytaj ze zrozumieniem jego początkowy fragment, ustaw tak jak trzeba i będzie działać. Kluczową sprawą jest przyswojenie sobie tego...
http://www.eclipse.org/downloads/ Które wybrać? ;> Eclipse IDE for C/C++ Developers
No i po co włączasz przerwanie? 4\/3!!
Oprzyj multipleksowanie o timery, a te niech wywołują przerwania.. Tworzysz sobie procedurę przerwania od timera. Następnie w tej procedurze realizujesz funkcję "przełączania" segmentów. Uruchamiasz timer z żądaną częstotliwością + odblokowujesz odpowiednie przerwanie.
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 przerwania chociaż pustą procedurę obsługi: [syntax=c] EMPTY_INTERRUPT(USART_TXC_vect);...
w LPC23xx źródła przerwań są na stałe przypięte pod konkretne kanały. W LPC21xx sam ustawiałeś przyporządkowanie źródło - kanał VIC. Tak więc tutaj musisz przerwanie od Timer0 obsługiwać przez VICVectAddr4, VICVectPriority4 itd., a ustawienie wartosci 4 (numer kanalu dla Timer0) w VICVectPriorty0 po prostu ustawia priorytet przerwania WDT (to jest na...
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 Complete i jesteś pewny, że dane odebrano ;) Z przerwania wepchnij wynik...
Da się to jakoś optymalniej zrobić? Przerwanie czy odczyt ile ono trwa? 4\/3!!
Faktycznie masz rację ustawiłem na 512 i rzeczywiście HardFault nie występuje. Niestety przerwanie EXTI3 nadal nie jest wywoływane :cry:
chciałbym się podpytać z jakiego IDE korzystacie? Jak nie na eclipse to może Visual Studio + VisualGDB. Choć nie jest to darmowa opcja.
To zacznij jak najszybciej używać eclipse, zobaczysz że będzie dużo lepiej ;) zresztą zobacz tutaj: [url=http://mirekk36.blogspot.com/2011/1...
#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.
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 ale niemam do niego epromu. Telefon się nie włącza, reaguje...
A ja polecam Eclipse. Z sei() nie ma problemu. Poza tym działa i w Windows i Linux (u mnie na Ubuntu).
nie - bariera jest rozstawiona teraz na powiedzmy około 6 cm od siebie. Wydaje mi się, że jest to problem z timerem, ale wg mojej oceny prawidłowo go zadeklarowałem. Dodam, iż kwarc mam 11.0592MHz. Preskaler 256. Przerwanie timera co 1 sekundę.
Oba taski maja ten sam priorytet ? Sprobuj sprawdzic czy przerwanie od SysTiicka dziala (breakpoint). Mozesz tez sprobowac wrzucic tutaj kod, ktory nie dziala (okrojony najbardziej jak to mozliwe).
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 konfiguruje system taktowania uC na 168MHz, ale dla kwarcu...
To już chyba wina złych deskryptorów lub ogólnie złej obsługi USB. Jak wchodzi w przerwanie od USB tzn, że program działa ok, ale coś w obsłudze/deskryptorach pokopałeś.
Cześć i czołem. Od dwóch tygodni walczę na noże z stmem 32f429 i nie bardzo chce cokolwiek działać. Problem jest dość trywialny: nie działają przerwania. Jedynie projekt wygenerowany przy pomocy CubeMX'a potrafi zrobić przerwania, ale znowu nie chce przyjmować klas etc. Zresztą, wolę unikać tego narzędzia, wolę rozumieć co gdzie jest i dlaczego. Próbuję...
Niestety, przerwanie od timera jest co 0.1s to wystarczająco długo by bit U1LSR zgasł. No ale dla próby wywaliłem te while - i skutku spodziewanego to nie odniosło.
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.
Ta biblioteka libc.a pochodzi z pakietu WinArm. Ja bym sprawdził czy tam to chodzi. A co do Eclipse/cygwin to u mnie nie chce wykonywać się przerwanie do procków Philipsa Lpc2000,choć kompiluje sie poprawnie. Pod WinArm'em chodzi, sprawdzane było też w Keilu, tam tez nie ma problemu. Nie wiem czary czy co. A ogólnie to polecam pakiet Yagarto ze stronki...
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 http://obrazki.elektroda.pl/5101784800_1... Any ideas ? :D
Niestety wciąż to samo :cry: diodka nie miga co 1s. Zaczynam myśleć, że ten kwarc zegarkowy jest uszkodzony. Wystarczy, że zaremuję konfiguracje zegara i program rusza. Tzn to co jest w main{}. Mam jeszcze takie pytanie do Ciebie. Widzę, że nie wybierasz grupy priorytetów. Czy jeśli jest wykorzystywane tylko jedno przerwanie to nie musimy wybierać grup??
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...
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!!
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ć je w przerwaniu timera - bez sensu - dużo łatwiej i krócej zrobić to w...
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
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... http://www.elektroda.pl/rtvforum/topic13...
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...
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 TIM2_IRQHandler. I klikając F5 nigdy już nie wyjdę z tego...
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 i odtwarzanie jest czasochlonne wiec nie nalezy tego...
Tryb User powoduje przerwanie pracy programu (wystąpienie wyjątku) procesora przy próbie zapisu pod nieistniejący adres, czy mi się wydaje? Dla mnie osobiście lepszym było by co innego. Niech odczyta krzaki, zapisze na stosie itp, ale niech idzie dalej. Rozumiem że można napisać obsługę wyjątku, ale jak zrobić żeby wyjątek w ogóle nie występował? To...
Co to za płytka? Jak twoja to chyba reset jest źle podłączony. Proponuję najpierw tak zrobić aby odpalać bez błędów i przeróbek, których nota bene nie rozumiesz. Jak już odpalisz płytkę poprawnie to wtedy po raz 1e999 przycisk i przerwanie się nie lubią i nie należy ich tak robić poza przypadkami kiedy __wiesz__ co robisz i jakie co ma skutki
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 main() { [konfiguracja tc i aic] while(1) { if (warunek1)...
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
Mimo że uruchomienie kontrolera LCD i EMC rzuciłem w cholerę (wszystkie projekty które miałem na tym zrobić zrobiłem na … AVRach ;p), to jednak procesor ARM chcę kiedyś uruchomić. Na razie własnymi siłami uruchomiłem UART2. Wysyła poprawne dane do kompa. Teraz próbuję zrobić odbiór i jednocześnie uruchomić przerwania. Napisałem taki kod jak w...
(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)BlueDraco Dziś podczas kolejnych nieudanych prób ten sam...
Elementem wywołującym pracę układu jest Switch S1 który zwierając port PB1 do masy wywołuję zewnętrzne przerwanie INT0 Uzywanie przerwania do styków butonnów, klawiszy i innych podobnych diabelstw jest najgorszym pomysłem. Temat był na tym forum poruszany setki razy - proponuje włożyć trochę wysiłku i użyć wyszukiwarki.
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 to przerwanie reaguje jedynie na zbuforowane 8 bajtów w kolejce,...
dziwne...wgralem ten sam program w AVR Studio i dziala bez problemu...wczesniej wgrywalem go w Eclipse( wersja 3.4.2 z 2009 roku) i nic sie nie dzialo. Wgrałem tez program ktory mial migać dioda rowno co 1 sek: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> int main(void) { DDRD |= (1<<PD0); PORTD |= (1<<PD0); // TIMER0...
Przerwania są zagnieżdżone,tzn. jestem w przerwaniu od timera, wysyłam wynik z przetwornika do uarta, a potem czekam na przerwanie od przycisku nie wychodząc z przerwania od timera. Gdy wcisnę przycisk to CPU idzie to obsługi przycisku i mam przerwanie zagnieżdżone. Tu nie pomoże żadna wiedza o wielkości stosu. Program trzeba przepisać. A przedtem...
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...
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...
Antystatyczny napisał: Mam już użyty timer0 do odświeżania wyświetlacza LCD. To źle robisz. Obsługa wyświetlacza nie należy do błyskawicznej , więc nic więcej nie będzie działać, zanim się napisy nie wyświetlą, a przy tym Timer się przekręci kilkanaście razy, więc zgubisz tyle przerwań. W obsłudze przerwania nie robi się nic, co by miało trwać zbyt...
Witam, korzystam z toolchaina od freddiego i Eclipse Luna pod stm32 discoveryf4. Debugowanie ogólnie działa jednak mam problem z breakpointami postawionymi w taskach od FreeRTOSa. Otóż są one jakby ignorowane, program nigdy się w nich nie zatrzymuje chociaż program wykonywany jest poprawnie. Jeśli postawię breakpoint w innym miejscu (przerwanie lub...
Nie napisałeś w jakim formacie masz ramkę. Zakładam, że RGB565. Jeśli tak, to na początek niepoprawnie rezerwujesz miejsce na taką ramkę. W RGB565 1 piksel obrazu zajmuje 2 bajty(jak sama nazwa wskazuje). Czyli na przykład aby odebrać ramkę o rozdzielczości 160x120 potrzebujesz 160x120x2 = 38400 bajtów, dla 320x240 to już jest 153600 bajtów. I tak dalej....
Zmienna time definiowana bez podania wartości faktycznie ustawiana jest na zero. Sprawdź sobie ten kod [syntax=c]#include <stdio.h> int time; int main(void){ printf("time=%d ", time); return 0; }[/syntax] tutaj: http://mikrokontrolery.blogspot.com/2011... i przeczytaj artykuł - tam o tym pisze. Nie działa? A jak ma działać...
Kurcze znowu bieda... Tym razem gdb w eclipse. Nie wiem czy dobrze wpisuję komendy w startup. Na razie chcę odtworzyć funkcjonalność programowania wsadu, wpisuję tak: monitor reset halt monitor reset init mon flash write_image erase unlock out/stm32f4_blink_led.hex Nic nie zaznaczam innego w tym oknie konfiguracji (start up). Eclipse wypluwa coś takiego:...
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 też na chwilę obecną nawet jej nie zmieniałem i zastanawia mnie co...
Doczekał się kol.Freddie konkretnego pytania :) W ogóle to udało mi się jakoś pokonać Attolic-a więc problem z Eclipse w zasadzie uważam za rozwiązany :) Niestety posługuję się książką niejakiego Paprockiego i z przykrościa uważam że to najgorzej wydane pieniądze ostatnich kilku tygodni. Uważam tak z powodu przykładów które zamieszcza niestety zapomniało...
Witam, napisałem programik obsługi przerwania od timera dla lpc2138 w środowisku ECLIPSE, ale nie działa poprawnie. Ten sam program napisalem w Keilu, i chodzi. Interesuje mnie więc jak definiować poprawnie przerwania, bo tu pewnie pies pogrzebany. Oczywiście kompiluje się wszystko poprawnie. Tyle że program nie wchodzi w przerwanie. void T0isr (void)...
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ą to czyta 64 bajty a następne w następnym skanie. Błędów nie ma. Chyba...
https://obrazki.elektroda.pl/9764833100_... Witam, celem projektu było stworzenie prostownika/ładowarki wieloetapowej który w przeciwieństwie do fabrycznych konstrukcji pozwalałby naładować w pełni akumulatory samochodowe z płynnym elektrolitem. Czyli uzyskanie gęstości elektrolitu na poziomie 1.27 Wsad do uC dostępny na priv. NOWA...
Witam, od pewnego czasu uczę się programować w C/C++ ARMy. Posiadam płytkę ZL9ARM z mikroprocesorem ZL10ARM - LPC2148. Używam programu Eclipse/CYGWIN/GNUARM. Próbowałem napisać już kilka swoich programów i chciałem też skompilować parę programów z książki LPC2000, Lucjana Bryndzy jednak cały czas wyskakują błędy i kompilacja zostaje przerwana. Programy...
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 z tego co wiem nie jest on dostępny w Timerze0. Chciałem w tym przypadku...
No więc troszkę znowu posiedziałem przy tych całych uK :) więcej co prawda przy konfiguracji eclipse na Ubuntu ale w końcu nie muszę się już przełączać na Windowsa żeby pobawić się w programowanie :) Usmażyłem takie coś: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> ISR(INT0_vect) { PORTB ^= 1 <<...
nawiązując do powyższych wypowiedzi, postanowiłem kontynuować temat; lecz tym razem wesprze się prostym schematem przedstawiającym sposób w jaki są podłączone trzy diody https://obrazki.elektroda.pl/3374686000_... i wcześniej nadmieniony tester serw; https://obrazki.elektroda.pl/3440395900_... do analizy zagadnienia...
Witam Próbuję teraz zaimplementować funkcję sprintf(..). Dołączyłem pliki nagłówkowe bibliotek stdio.h , errno.h oraz implementację funkcji : caddr_t _sbrk (int size) podaną przez Pana na forum. Program kompiluje się lecz niestety przy wywołaniu sprintf(..) jest wywoływane przerwanie z tablicy vectors.c: static void __Default_Handler(void) {...
Ja robię zmienną Rs_zn tam w podglądzie zmiennych (w tym żółtym okienku), wpisuję dowolny znak żeby wywołać przerwanie, i jak tylko znak zostanie pobrany z UDR do zmiennej to zmieniam zawartość zmiennej w tym podglądzie zmiennych. Można też zmienić w podglądzie RAMu, albo tuż przed przepisaniem zawartości z UDR do zmiennej wpisać potrzebną wartość do...
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 test/Debug} i działa. Natomiast do kol Chopina bardzo wazne...
Robotmen, twoj pomysl o RC kosiarce wcale nie jest bezsensowny. Ja siedze wlasnie w pokoju obok mnie mam Hitac Eclipse 7 RAdio to mojego samolotu RC i tak sie zastanawialem jak mozna to praktycznie wykozystac. Wiec postanowilem zrobic kosiarke. Przypadkowo znalazlem ztrone firmy w USA ktora specjalizuje sie wlasnie w RC kosiarkach a ich konstrukcja...
Możesz również zrobić to w podobny sposób jak masz na myśli. Wykorzystaj przerwanie od przepełnienia licznika. Wcześniej jednak musisz wyliczyć odpowiednią wartość rejestru licznika timer1. W ten sposób dobierając inny prescaler możesz uzyskać bliższy wynik do 1us. Co do tego co zasugerował przedmówca. Jest to najprostszy sposób dla wywołania opóźnienia....
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 DLACZEGO zapis, który nie powinien ruszać bitów PD2 i PD3 generuje...
Witam po przerwie ;]. Ja od poniedzialku znowu walcze z tym opornym srodowiskiem. I mam naprawde dosyc :>. Opanowalem juz wykorzystanie OpenOCD do zapisu flasha w procku. Narazie pracuje na programach zajmujacych troche ponad 2 kilo kodu (heh ;) wiec trudno mi okreslic szybkosc zapisu, ale powiedzmy ze to dziala w miare dobrze i nie narzekam. Trudno...
0x20 w r0 ląduje. Co to mówi? Zapytałem tak prosto i bezpośrednio, bo na tą chwilę pojęcia nie mam gdzie i czego szukać. RM0008 o wyjątkach jakby mało, w PM0056 trochę więcej, ale opisu tych wyjątków na razie nie znalazłem. Trafiłem na opis do stm32f3, jest tam formuła z której wynika związek między wyjątkami a przerwaniami. Wygląda na to, że dane przerwanie...
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 na konfigurowaniu budzików biblioteki lwip (dla posiadających...
O! Aż tak? No ale dobra :D Niestety Eclipse nie łyka stałych USER_MODE czy CPSR_I (plik hdr/hdr_cpsr.h oczywiście dołączyłem) więc musiałem się podratować wpisaniem konkretnych liczb. Mam nadzieję że zadziała :D Idę testować. Dodano po 26 Niestety nic nie działa. Fcclk = 72000000 Jeden sektor (24) Wyłączanie i włączanie przerwań za pomocą CPSR. Nie...
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...
Witam! Eclipse Kepler Sourcery CodeBench Lite 2011.09-69 OpenOCD 0.6.1 STM32F103ZET6 Od pewnego czasu bawię się modułem GSM. Komunikacja z modułem standardowo komendami AT. Chciałbym usprawnić komunikację z modułem ponieważ moim zdaniem teraz robię to bardzo nieefektywnie: - wpisanie do bufora nadawczego komendy i uruchomienie wysyłania z wykorzystaniem...
Schemat jest dobry, ale sprawdź miernikiem we wtyczce. Czy powinno zostać wykonane przerwanie? Jeśli Ty w funkcji main() nie obsługujesz zapytań hosta, ani nie zrobi tego przerwanie to kto przedstawi się PC-towi? A jeśli nikt, to nawet Winows 8.5 nie będzie na tyle mądry aby rozpoznać urządzenie ;-) Poza tym nurtuje mnie pytanie, dlaczego zmieniłeś...
Eclipse lub AVR Studio + GCC + Atmega8 Chciałbym zautomatyzować sobie liczenie ilości cykli zegara procesora, które wykonuje dany fragment programu. Jest to dla mnie istotne, a w czasie pisania kod często ulega zmianie i liczyć muszę od nowa ręcznie. W manual-u GCC v4.5.2 na stronie 281 rozdz. 6.3 znalazłem jedynie informacje jak policzyć objętość...
Witam, Ogólnie pracuje na: CPU: LPC2478 IDE: Eclipse Helios SR1 Compilator: Code Sourcery Lite Portowałem projekt z IAR Workbench na darmowa platformę i większość rzeczy udało się zrobić bez większych problemów (oczywiście z google i forum). Obecny problem polega na aktywacji i dezaktywacji przerwań dla wspomnianego procesora. Z dokumentacji oraz tu...
Witam Panowie czy mógłby ktoś sprawdzić na swoim stm32, jak "wkładacie" go USB ile razy pojawia się przerwanie od USB reset request. W programie z reguły jest tak: /* USB Reset Request */ if (istr & USB_ISTR_RESET) { // USB_Reset(); _SetISTR((uint16_t)CLR_RESET... U mnie jest koło 100 razy. Na SAM7X256, przy wkładaniu...
Witam Na początku zaznaczę, że to moje pierwsze kroki w FreeRTOS. Staram się uruchomić HOST USB (odczyt/zapis Pendrive) w własnym systemie z procesorem LPC1758. Po kilku próbach z FreeRTOS zaimplementowałem prostą komunikację przez RS-232 (do komunikacji dwustronnej). W tym przypadku przerwania działają bezproblemowo. Przy próbie implementacji HOST-USB...
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 to sprawdzam w STMStudio wartość zmiennej tmp, która powinna się inkrementować...
Hmm... Pokaż instrukcje "obok" bo na tej na pewno się nie wykłada - jest to rozkaz załadowania do r0 wartości spod adresu "76 dalej niż obecne PC", co na pewno istnieje i jest "za" funkcją (zresztą w komentarzu masz nawet adres tych danych - c90). Przypuszczam, że abort wywołuje się tutaj, bo np do procka dopiero teraz dotarło, że ma wykonać ABORT,...
Witam, Zabrałem się za mój pierwszy układ na Cortexie M-3. Zadaniem układu jest (na początek). 1. Generowanie sygnału z DAC. 2. DAC jest triggerowany przez timer (chwilowo T2). 3. DAC wykorzystuje DMA (DMA2_Channel3). I dotąd jakoś wszystko działało (DMA w trybie Circular). Generowany przebieg był ok. Docelowo potrzebuje podmieniać (przełączać się)...
Po inicjalizacji portu DBGU próbuję wysłać znak do terminala. Sterownik portu napisany jest w trybie odpytywania (w najprostszy sposób). void DBGUPOL_Open( ULONG baudrate ) { PMC_OpenPeriphClock( AT91C_ID_SYS ); AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF; PDC_DisableAndResetWrite( AT91C_BASE_PDC_DBGU ); PDC_DisableAndResetRead(...
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 TxMess; TxMess.ExtId = 0x234501; //TxMess.StdId = 0x241;...
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 ostatnim zamieszczonym w temacie kodzie wynika że: 1. Symulacja zatrzymuje...
pardonsik, moja pomyłka (apropo pull upów i sensu aktywacji SFIOR !=(1<<PUD)) (moderator szybki jest! Mam merytoryczne uwagi być może z sensem :) 1. Można by zamiast fototranzystora i adc zastosować komparator skoro i tak go dezaktywować nie możesz? próbkowanie adc trwa aż 25 cykli i pochłania wiecej mocy niż komparator, (ADC pobiera 250uA komparator...
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...
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 przykład od Freddiego (stm32f4_blink_led). Mój problem dotyczy...
O ile pierwsze miały jakieśtam problemy, to w kolejnych rewizjach je usunęli (aczkolwiek errata nigdy nie była długa). Atmel ma tą przyjemną cechę, że wypuszcza kolejne rewizje procków w których poprawia znalezione błędy, w przeciwieństwie do wielu innych producentów, którzy je powielają i wmawiają, że tak musi być:) Z pewnością tańsza i w sumie lepsza...
Co trzeba zrobić żeby debugowanie było poprawne? Zwykle debuggowanie aplikacji z bootloaderem jest nieco upierdliwe. Po pierwsze - dla pewności - spytam, czy masz wgrany bootloader i czy mniej-więcej jesteś w stanie stwierdzić, czy takie kombo (bootloader + aplikacja) działają prawidłowo (poza debuggowaniem)? Jeśli tak, to u mnie w Eclipse zwykle nie...
Jedynym błędem, który pokazuje Eclipse jest ta nazwa rejestru. Czy poniższy kod jest poprawny i będzie migał diodą co 1 sekundę ? [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> // definicje dla preprocesora // dioda LED #define LED1_PIN (1<<PD6) // definicja pinu do którego podłączona jest dioda...
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ć. Proszę o pomoc. Poniżej zamieszczam kod. Dodano po 2 Program ma...
Witam Swoją walkę opisywałem już w innym poście ale nieco sie namieszało i postanowiłem założyć nowy post. Nie mogę sobie dać rady z poprawnym skompilowaniem bibliotek USB - Virtual Com. Używam CodeSourcery+Eclipse opisanego tu: http://www.elektroda.pl/rtvforum/topic13... Moje próby wygladły tak Próba 1. LPCUSB - Do przykładowego projektu http://www.elektroda.pl/rtvforum/topic13...
stm32 przerwać przerwać przerwać przerwać bascom bascom przerwać przerwać
klimatyzator sterowanie układ oznaczenie nóżka wyciek oleju przez odpowietrzenie
partner ssanie ładowarka parkside
Bosch Tronic 0128 – stacja klimatyzacji R134a, kody błędów, instrukcja, serwis P1338 – Peugeot, Citroën, VAG, BMW, Chevrolet: znaczenie kodu, objawy, typowe usterki