Skorzystaj z rejestru GPIO->BSRR
Ja mam tylko target remote localhost:3333 monitor reset halt lub target remote localhost:3333 monitor reset halt #load monitor flash write_image erase main.bin 0x08000000 bin load działa ale mam przypadek gdzie muszę użyć tego drugiego
W pliku stm32f10x.h jest to trochę inaczej niż w dokumentacji. Np. dla PSRAM1 - rejestr BCR1 odpowiada: [syntax=c]FSMC_Bank1->BTCR[0][/syntax] - rejestr BTR1 odpowiada: [syntax=c]FSMC_Bank1->BTCR[1][/syntax] - rejestr BWTR1 odpowiada: [syntax=c]FSMC_Bank1E->BWTR[0][/syntax] Według tego powyżej mam ustawiony LCD i zewnętrzny RAM i działa.
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
Musisz jeszcze ustawić aby wyjście było aktywne w rejestrze CCER.
(at)toch88 Nie ma powodów, aby nie stosować takiego zapisu. Np. Atmel w swoich nagłówkach dla ARM daje możeliwość korzystania z pól bitowych, lub składania wartości z masek i przesunięć. Przy czym jeśli korzystasz z pól to wygodnie jest użyć compund literals: http://mikrokontrolery.blogspot.com/2011...
W przerwaniu przydałoby się kasowanie flagi od przerwania (rejestr EXTI_PR)
Myślę że to wszystko jest wytłumaczone w datasheecie do tego akcelerometru. 4\/3!!
Nie ustawiłeś bitu MOE w rejestrze TIM1->BDTR.
Pierwsza opcja to oczywiście zdefiniowanie NAPRAWDĘ DUŻEGO stosu, ale to średnie rozwiązanie jak wiadomo [; Do rozbudowanej aplikacji na ARMa myślę że należy liczyć minimum 1kB, jeśli używa się jakichś potwornych funkcji standardowych (printf!) i to głęboko to lepiej zaopatrzyć się w 2kB (o apetycie tych funkcji na pamięć pisałem ostatnio http://www.elektroda.pl/rtvforum/topic13...
Masz serię artykułów w EP z ostatnich 2 lat o programowaniu bez SPL w Keilu - wystarczy poczytać, archiwalne numery są dostępne za darmo. Marudzisz, że nie działa, ale ani nie pokazałeś kodu, ani nie napisałeś, co to znaczy że "nic nie rusza", więc jak niby mamy Ci pomóc, hę?
Np. STM32F100C8T6B. Ogólnie stm32 są "bardzo kompatybilne". Ważnie żeby trzymać się jednej grupy np stm32f1xx (nie zmieniać typu rdzenia (rodziny) np. z m3 na m4 lub m0 bo mają nieco inne rejestry konfiguracyjne).
ja pytam o sposób dostępu do tego rejestru, gdzie znajdę to napisane? Czy mam sam przez podobieństwo próbować czy coś takiego zadziała: DMA->ISR=0x......; ? Czy taka jest zasada? Taka jest zasada. Gdzie te nazwy są zdefiniowane? Większość jest w pliku stm32f10x.h . Jeśli używasz Eclipse, to po prostu trzymając CTRL kliknij w daną nazwę, a otworzone...
Takie samo? To czemu w pierwszej linijce przesuwasz o 0 pozycji, a w drugiej o 16? Dla jednego to żadna różnica, dla innego będzie to problem i dodatkowy kod. Każdemu według potrzeb. Poza tym naprawdę nie rozumiem problemu - nie chcesz to nie używaj, przecież nie płacisz za to żadnych dodatkowych pieniędzy. Ktoś będzie chciał użyć - użyje. Ktoś nie...
Odczyt rejestru DR przez debugger jest odczytem, a więc resetuje flagę RXNE w rejestrze SR. Wyłącz podgląd rejestru DR to powinno być lepiej.
Żeby podejrzeć rejestry układ trzeba oczywiście najpierw zatrzymać. Generalnie też (kiedyś) wtyczka embsysregview nie odświeża automatycznie rejestrów (ikonka szara) - trzeba daną pozycję kliknąć 2x (ikonka zielona) i wtedy wartość jest aktualizowana itd. 4\/3!!
Po drugie, chcesz nadawać bajty, a rejestr DR w STM32 ma 16 bitów, więc jednym zapisem do DR nadajesz 2 bajty. Tutaj się mylisz. Akurat w F103, możesz wysyłać pojedyncze bajty bez bajtowego dostępu. To co opisujesz jest w nowszych STM32, np. L4, F4, F7. W każdym przypadku lepiej użyć do tego DMA.
Chodzi o to co pisze NAD opisem bitów z rejestru RCC_BDCR. Można tam znaleźć takie oto info: The LSEON, LSEBYP, RTCSEL and RTCEN bits in the RCC backup domain control register (RCC_BDCR) are in the Backup domain. As a result, after Reset, these bits are write-protected and the DBP bit in the PWR power control register (PWR_CR1) has to be set before...
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Aż niemożliwe, że tak ciężko jest zacząć z stm32 na rejestrach... To dość złożona architektura i potrzeba sporo rzeczy aby stworzyć działąjący program. Dziś mam dziń dobroci i zrobiłem Ci projekt. Dalej to już tylko problem Twoich programów. Nie można zwalać na środowisko.
Tablicami NVIC się nie przejmuj. Korzystaj z funkcji dostarczonych przez CMSIS, w tym przypadku nie warto stosować rejestrów wprost. Konfiguracja Timera OK, choć kolejność nie należy do poprawnych. Przyjrzyj się jeszcze rejestrowi EGR. Przerwanie? Brak kasowania flagi skutkuje ciągłym jego wywoływaniem. Flagę kasuje się na początku przerwania. I taka...
a reklamy wcale nie wyskakuja czesto, mi sie zdarza raz na 1h moze nawet rzadziej A jak klikniesz debug? podgladu rejestrow nie ma ale zawsze mozna to ominac w taki sposob ze sobie dane z rejestru do zmiennej przypisujesz i w zakladce veriables masz to do podgladu Nie próbowałem. Ale w Keilu w podglądzie rejestrów możesz sobie w trakcie debugowania...
odczyt rejestru - modyfikacja - zapis do rejestru . Nie powinno cię dziwić, że jeśli między tymi operacjami wystąpi przerwanie, w którym modyfikowane są ODR bitbandingiem i nie tylko to cała operacja z przerwania zostanie anulowana.
U mnie akurat aby wyzerować to muszę Prawidłowo. A jakbyś uaktualnił CMSIS to byś miał i _Msk. ;) Ogólnie nie mogę pojąć skąd kompilator wie czy odwołujemy się do mode0 czy do mode1 kompilując przykład poniżej: W tym przykładzie odwołujesz się do mode1. Jakby dało się ustawić coś typu Mode1=0 a Mode0=1 i CNF0=0 a CNF1-1 to wiem do którego bitu się...
Nawet dla takiego małego Miki jak ja już na pierwszy rzut oka jest jasne że te kody to potężne źródło problemów. Co widać bez wgłębienia się w szczegóły: * Funkcja main() jako rozbiegówka to słaby pomysł. Kolega stmx napisał coś na ten temat (nawet podaje link w promowanych tematach), warto to przeczytać. * Stos musi mieć odpowiednie wyrównanie, zwykle...
Nie no zaraz. Kanały są multipleksowane, więc rozwiązanie jeden na kanał odrzucam. Prawdopodobne jest rozwiązanie kilka w jednym przetworniku, no ale jakie (od czego) miałyby być te kondensatory i w związku z tym po co ich kalibracja. Najbardziej prawdopodobne wydaje się być rozwiązanie kalibracji jednego kondensatora na przetwornik, co tłumaczyłoby...
Czemu po prostu nie przestawisz wartości ARR zamiast jednego z rejestrów od porównania?
W funkcji wpisującej cokolwiek do SPIx->DR powinno być oczekiwanie na informację o tym, że rejestr TX jest pusty - trzeba więc sprawdzać flagę TXE. Rzutowanie powinno być na "volatile uint8_t*". Wrzuć cały aktualny kod. Wrzuć informację o tym jaka jest zawartość rejestrów SR obydwóch SPI w momencie wystąpienia problemu. "__attribute__((interrupt))"...
Czy domyślnie jest w danym modemie włączone czy nie to już zależy od modemu chyba. I/lub S-rejestrów.
Kupa błędów, trudno, żeby działało. Nie wiem, czy wszystkie wyliczę: 1. W komentarzach jest TIM1 ch1, TIM1 ch2, TIM1 ch3, ale kody pod tymi komentarzami są identyczne (tylko rejestr CCRx jest zmieniony) - niby czym się różni inicjowanie dla poszczególnych kanałów? 1a. Rejestry PSC i ARR są określone dla timera (wspólne dla wszystkich kanałów), więc...
Tak zrobię, spróbuję na samych rejestrach.
Same błedy pierwsza linijka: RCC->APB2ENR = RCC_AHBENR_GPIOCEN; rozumiem że wszyskie peryferia poza losowym RCC_AHBENR_GPIOCEN (losowym bo z innego rejestru) wyłaczasz. Zastanawiam się czy to naprawde trudno zauważyć że APB2 != ABH oraz przyjąć ze w takim rejestrze jest więcej niż jeden bit i raczej nalezy inne zostawić w spokoju. Trzeba też działać...
W module RCC masz rejestry odpowiedzialne za reset peryferiów (RCC_APBxRSTR)
To nie rozwiązuje problemu. Jeśli masz do skonfigurowania kilkadziesiąt pinów to dalej stoisz w tym samym miejscu - tracisz dużo czasu na klepanie konfiguracji dla GPIO. To rób konfigurację CubeMX a dostęp do GPIUO na rejestrach. Często używam tej metody nie tylko dla GPIO ale i dla USART, SPI. Transmisję realizuję swoimi funkcjami a init robię przez...
Hala do usarta czy SPI nie lubię. Łatwiej i dużo szybciej na rejestrach
Musisz je znowu aktywować. Konfigurację UARTa można zostawić z HALa, jednak samą obsługę przerwań lepiej zrobić na rejestrach. Jak je ponownie aktywować ? HAL_UART_Receive_IT
nie ma czegos takiego jak dummy read przy odczycie rejestru tylko przy odczycie z GRAM chyba.
(at)dziechu poczytaj co robi operator sizeof zamiast grzebać w rejestrach
A SPI_CR1_DFF za co odpowiada? Bo ja nie mam takiego bitu w rejestrze.
Tak też zrobię - podłubię w bibliotece. Sadze ze (at)Freddie Chopin chodziło o to abyś sobie napisał na rejestrach :).
Zamienił stryjek siekierkę na kijek. Nie rozumiem w czym jakieś dziwolągi programistyczne mają mieć przewagę nad prostym ustawieniem kilku bitów w kilku rejestrach.
Cała korporacja AVT silnie promuje używanie SPL. W zasadzie nie widziałem jakiegoś artykułu w odniesieniu do rejestrów.
Tak, Freddie Chopin ma rację, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... oraz configMAX_SYSCALL_INTERRUPT_PRIORITY powinny być spójne, ponieważ odnoszą się do tego samego lecz różnią się przesunięciem bitowym w celu stosowania tych flag w funkcjach bibliotecznych lub bezpośrednio w rejestrach.
Chyba trzeba przestawić funkcję wybranych wyjść GPIO na linie interfejsu USART. Dla mnie mało czytelne są te gotowe biblioteki STM32. Sam wszystko robię na rejestrach.
Witam! To znowu ja. Uczyli w szkole o generale, co się kulom nie kłaniał, a ja mam rejestry, co się resetu nie słuchają, ani sprzętowego z pinu, ani z jtag-a. Jak to rozumieć? Timer i dma też nic sobie z resetu nie robią. Teoretycznie po resecie powinienem mieć w rejestrach reset value, ale przynajmniej w wymienionych tak nie mam. Pomaga dopiero wyłączenie...
Pomyśle :) w ogromnej ilości rejestrów stm32, myślałem, że jakoś łatwiej się odnajdę dzięki bibliotece, a tu chyba jest dokładnie odwrotnie :) pozdrawiam Krzysiek
Nie widząc gdzie wpisać load posłużyłem się h-jtagiem. Właśnie-gdzie i jak wpisać ten load i czy z jakimiś parametrami? Zerknij do mojego tutoriala o ARM toolchain - na końcu jest o debuggowaniu i tam właśnie jest użyta ta komenda. Używasz jej tylko przy GDB (debugger). Można też wgrać bezpośrednio - odpalasz OpenOCD, odpalasz telnet i używasz komendy...
Skoro te biblioteki Ci się nie podobają, to ich nie używaj - w czym problem? Jeśli podoba Ci się inna to jej użyj. Jeśli żadna, to napisz swój kod w oparciu o rejestry.
1. Zgubiłeś rejestr EXTI_IMR. 2. Wartość orowana z FTSR jest błędna. 3. Zegar dla GPIOB? 4. Użycie definicji z nazwami bitów poprawiłoby czytelność :) 5. W przerwaniu wypadałoby sprawdzać źródło ( if ( EXTI->PR & EXTI_PR_PRx)... )
zmiana na GPIO_Mode_AF_OD nic nie zmienia. Kontroler wiesza sie na czekaniu na flagę. Wkurzają mie te biblioteki powoli. Jęśli napiszę while(1) I2C_SendData(I2C1, 0); to na SDA I SCL mam 3,3V. Są oporniki podciągające 4k7 Ma ktoś może przykład jak to zrobić normalnie na rejestrach?
To API jest bez sensu więc nie ma co szukać o tym informacji. Dlaczego uważasz, że jest bez sensu? To według Ciebie lepiej pisać odwołując się bezpośrednio do rejestrów?
Dzięki za ten opis, muszę wpisać jeszcze do pamięci wyświetlacza jakieś wartości aby zobaczyć cokolwiek. Niestety u mnie problem tkwi w mojej ocenie w samym I2C. Bez rozwiązania tego problemu nie będę w stanie ustawić żadnego rejestru.
Makro LED_bb_B odnosi się do rejestru ODR który pozwala na zmianę stanu pinu. Ty natomiast musisz skorzystać z rejestru IDR który odwzorowuje rzeczywisty stan wyprowadzenia.
A odblokowałeś FLASH? Chodzi mi o magiczne: [syntax=c]FLASH->KEYR= 0x45670123; FLASH->KEYR= 0xCDEF89AB;[/syntax] I oczywiście zabezpieczenie zadziała dopiero po resecie procesora. Wcześniej wszystko działa tak jakby zabezpieczeń nie było pomimo odpowiednich wartości w rejestrach.
BlueDraco, przejście na programowanie za pomocą rejestrów dawno mnie pociągało, ale w zasadzie trzeba by było zaczynać naukę od zera (szczególnie dla każdego nowego procesora). Czy gdyby dalej pisać w HAL, ale ważniejsze czasowo fragmenty tylko na rejestrach, to szybkość ich byłaby porównywalna? Czy jednak pozostałe fragmenty kodu w HAL akurat niezwiązane...
A konkretnie, to czego z kodu inicjowania timera nie rozumiesz po przeczytaniu rozdziału o timerach z Reference Manual? Masz tam obrazki, opisy działnia i szczegółowo rozrysowane i opisane rejestry sterujące.
Tak, te funkcje sa do odczytu z zapisu rejestrow, jednak jak mnie przekonales ( nie w 100% do poki nie zobacze jakiejs dokumentacji :P ), na rejestrach usb stm32 a nie phy.
Sprawdź opis rejestru w Reference manual. Tam jest to jasno i klarownie wyjaśnione.
Witam, Timery w tych prockach mają tyle opcji, że się w tym wszystkim pogubiłem. Jak można wygenerować na jakimś wyjściu przebieg prostokątny o programowo określonej częstotliwości? Pewnie będzie to tryb Compare z zerowaniem rejestru licznika i zmiany wyjścia na stan przeciwny. Nie mam jednak pojęcia co i gdzie poustawiać w rejestrach.
Rzeczy, które zaznaczyłeś - to stałe zdefiniowane na podstawie lektury manuala - wartości bitów włączających odpowiednie tryby pracy peryferiali. MODER. A to nie powinno być zdefiniowane w pliku "stm32f0xx.h" aby wykorzystać w kodzie programu? Opis, który wkleiłeś plus opis bitów w rejestrach daje komplet informacji potrzebnych do zaprogramowania timera....
Nie powiem Ci jak z HAL, ale TIM1 owszem ma taka możliwość, jeśli bit MOE w BDRT jest == 0, a OSSI == 1, to stany wyjść kiedy timer jest wylączony ustalają bity OISx(N) w rejestrze CR2.
Sposób mam bardzo prosty - po kolei ładuję rejestry sterujące każdego peryferiala i dzięki temu kod inicjujący wszystkie peryferia w dużych projekstach nie przekracza kilkudziesięciu linii. żadna pseudowuniwersalna biblioteka nie obejmie wszytskich potrzeb projektu, a inicjowanie peryferiów potworkami typu SPL wychodzi wielokrotnie (np. 8x) dłuższe...
Sam widzisz, że wcześniej wyzerowałem wszystkie rejestry co dało mi pewność że nie zawierają żadnych śmieci, potem wykorzystałem funkcje, i nic to nie dało. Jak dałem sumowanie bitowe w drugim przypadku to jest ok. Chodzi Ci o to, że powinienem najpierw czyścić pola rejestru które zamierzam zapisać tak? Funkcja to robi, i mimo to coś jest nie tak. Debugger...
Funkcje będą takie same ale sprawdź adresy do rejestrów poszczególnych.
jest jakaś prosta metoda na timeout ? Nie wiem jaki masz STM, ale niektóre mają sprzętowy timeout. Wystarczy w rejestrze RTOR podać po ilu nieodebranych znakach ma zostać wygenerowane przerwanie. Ewentualnie musisz się posiłkować jakimś timerem - np. w trybie OPM. Szczerze mówiąc chyba lepiej Ci będzie napisać tę cześć kodu bezpośrednio na rejestrach...
Może wbiję kij w mrowisko: Po co właściwie Ci ten bitbanding? Programuję Cortexy na codzień i nie zauważam praktycznej potrzeby użycia BB. Nie to, żeby w ogóle jej nie było, ale jest ona tak marginalna, że nie opłaca się w to bawić. Tam, gdzie są potrzebne operacje bitowe, są one zaimplementowane w sprzęcie lepiej i bez potrzeby użycia BB i szybciej...
Nie może być UART. Tylko SPI albo I2C. Musi być wykorzystany HAL na stm32 a na RPI bcm2835 ewentualnie wiringPI. Nie powinienem korzystać z rejestrów na stm32. Dlaczego? To są zagadnienia z kursów pewnych. Jak to powinno wyglądać?
Rysunek chyba jakiś mały wymowny, tam znajdziesz odpowiedź (; A jak nie, to ustawienia rejestrów do wglądu, bo tak to się nie dogadamy. Znajdziesz to w TIMx w rejestrze CCMRx, bit OCxCE. Fragment opisu: OC1CE: Output Compare 1 Clear Enable 0: OC1Ref is not affected by the ETRF input 1: OC1Ref is cleared as soon as a High level is detected...
1. Polska literatura bazuje na tych bibliotekach 2. Bo się pisze szybciej i łatwiej, 3. Mniej cię obchodzi bo większość rzeczy dzieje się pod spodem 4. Dużo przykładów w sieci = co za tym idzie 1. mniej optymalnie 2. w razie problemów i tak trzeba grzebać po rejestrach żeby dowiedzieć się co się dzieje
KeypadStruct.OUT0_Port->CRH &= ~(1UL << (4<< OutPositions To jest na pewno źle. Może zamiast struktury IF lepiej w tym przypadku użyć SWITCH? No i co to zmienia, poza zajmowaniem więcej miejsca i wymaganiem dziwnych słówek?
A rejestr FLASH_ACR i latency to ustawiasz jakoś? Albert
Odkopuje stary temat bo nie ma sensu żebym zakładał nowy, a pytanie mam bardzo podobne. Gdzie w datasheet STM32F407VGT6 znajduje się opis rejestru SysTicka? Wczoraj przekopałem cały i nie mogę nic znaleźć nic prócz "SysTick calibration value register" który i tak i tak nie jest opisany. Doszedłem do tego samego momentu autor tematu, czyli chciałbym...
W Twoim działającym przykładzie do rejestru wpisujesz adres tablicy ("&" może być albo może go też nie być - również zadziała wg mnie), natomiast w przykładzie niedziałającym najpierw do funkcji podajesz adres tej tablicy, a potem jeszcze raz wyciągasz adres tego adresu - żeby zaspokoić Twoje potrzeby kompilator zmienną tab umieszcza gdzieś na stosie...
Czyli jeżeli dobrze rozumiem to w przypadku resetowania powinienem ustawić bit RST. Następnie włączyć zegar RCC (ponieważ w konfiguracji po restarcie jest on wyłączony) Resetujesz konkretne peryferium a nie RCC. Tak że w RCC nic się nie zmieni. Mogłbyś mi jeszcze podać źródła gdzie znalazłeś takie informacje o resecie Takich jak Ty podałeś to nie znalazłem...
Jeśli chodzi o przeciwfazę to, tak jak mówilem, sprawa jest generalnie bardzo prosta: jeden kanał timera w trybie compare albo pwm oraz odpowiednie zaktywowanie wyjść. Timer w takiej konfiguracji jak zrobiłeś wygląda OK (oprócz podczepionych przerwań bo są niepotrzebne), zaktywować wyjście niezanegowane może da radę przez pinMode(PA8, PWM), ale nie...
przerwanie przeciez jest wlaczone, bo sie wykonuje handler. chyba ze nie wiem co to znaczy wlacz EXTI... problem jest w tym zapisie do rejestru EXTICR
Ok. Ma ktoś może inicjalizację tego wyświetlacza do pracy poziomej? Zmieniam wartości rejestru 0x11 i po zmianie bitu AM wpisuje poziomo, ale zaczyna na dole i dalej rysuje poza ekranem. Pewnie trzeba ustawić też inne rejestry. W ogóle to dziwne jest to że w inicjalizacji rejestr 11h ma wpisywane 0x6070. Bit AM to bit nr 3, więc jest ustawiany jako...
Biblioteki czy plików nagłówkowych? Jak to drugie to: - www.st.com - Products → Microcontrollers → STM32 32-bit ARM Cortex MCUS → STM32F4 Series → STM32F407 - (po lewo) Software → STM32Cube -> (w nowo otwartym oknie) STM32CubeF4 - (na samym dole) Get Software → Download - w rozpakowanym archiwum: Drivers → CMSIS...
Debugowanie kodu do I2C do bezpiecznych nie należy do udowodniłem. Wystarczy nie pozwolić na odpowiednią szybką reakcję na zdarzenie, co spowoduje zawieszenie magistrali. W szczególności trzeba uważać na rejestry SR
Może nie akceptuje tak wysokiego napięcia zasilania. Sprawdź jaki ma dopuszczalny zakres napięcia zasilania w rejestrze OCR (CMD58).
Witam wszystkich Przychodzę do Was z problemem, z którym borykam się już tydzień może dwa. Chcę móc sterować sterownikiem DRV8711 (na PCB od Pololu) przez BluePill (STM32F103C8T6). LINK: Płytka Pololu z DRV8711: https://www.pololu.com/product/3730 Dokumentacja DRV8711 Texas Instruments: https://www.ti.com/lit/ds/symlink/drv871... BluePill: https://sklep.msalamon.pl/produkt/plytka...
Napisał, że ma to być cyfrowy - ale np. czy opóźnienie ma dotyczyć jednego zbocza, czy obu, już nie widzę. Można by rozważyć użycie rejestrów przesuwnych i dobierać liczbę bitów - ale to może wyjść drogo. Procesor? Przynajmniej STM32, i to jakiś szybszy. Tylko w każdej z tych wersji to działa synchronicznie z zegarem...
Odbiór danych o nieznanym rozmiarze przez DMA jest bardzo problematyczny... Ponieważ włączyłeś tryb "circular", to w zasadzie jedyna opcją jest późniejsze składanie danych w dodatkowym buforze - będziesz musiał skopiować to co jest na końcu bufora DMA i potem to co jest na początku - tak aby dane znów były w poprawnej kolejności. DMA realizuje po prostu...
To jest jeden z kodów z działu o NVIC z którym mam problem. Poza tym rejestr SysTick jest rejestrem kontrolera NVIC.
Witam, Zagłebiam się powoli w procesor STM32F107 i widzę, że nie będzie łatwo :-) Pamiętam wcześniejszą dyskusję o nieużywaniu biblioteki "Standard Peripherals Library". OK To jak w takim razie zrealizować cos takiego, znanego z innych procesorów: np. GPIOA_CRL = 0x44444444; W pliku STM32F1x.h nie widzę adresów poszczególnych rejestrów np. GPIOA-G,...
to zapisuje do rejestru 8 bitów. A podobno chcesz 16
Procesor musi mie odpowiedni rejestr, który umoliwia taką zabawę. W STM32 nazywa się BSRR. W AVR-ach nie ma chyba niczego takiego.
Dzięki wielkie! wałkowałem to ładne parę dni a takiej głupiej pomyłki nie zauważyłem ;) za to poznałem dość dobrze kod fatfs ;) ... oprócz zapisu TRZEBA także odczytać rejestr SPI...
Możesz. Niemniej jednak w przypadku czegoś tak prostego jak HD44780 pewnie prościej te wywołania usunąć niż konfigurować kompilację biblioteki wraz z projektem.
Nie, no niewątpliwie masz rację, że jeśli chodzi o wydajność to szybciej jest bezpośrednio pisać po rejestrach ;) pozdrawiam Krzysiek
Dla licznika TIM1 trzeba dodatkowo dodać polecenie: [syntax=c]TIM_CtrlPWMOutputs(TIM1, ENABLE);[/syntax] Ustawia ono bit MOE w rejestrze BDTR, polecenie dotyczy liczników 1, 8, 15, 16 i 17 .
Może nie pojmuję idei budowy tego rejestru ale jeżeli podamy offset np 0x100, to ustawiony zostanie bit 8 tego rejestru a nie (jak wydaje mi się, że powinno być) 15. Bo przecież offset wpisywany jest w pole TBLOFF a nie w.... rejestr. Wariuje :|
konfiguruje A0 na wejście z podciąganiem. Nie są potrzebne dalsze udziwnienia, aby po prostu chodziło... Wytłumacz mi w takim razie dlaczego konfiguracja od STM'a działa poprawnie bez odwoływania się do rejestru ODR ?
A da się to zrobić w jakiś szybki sposób? Czy trzeba resetować wszystkie rejestry po kolei?
Witam A może rejestr przesuwny, będziesz potrzebował tylko trzy linie. Pozdrawiam Romek
2. Sprawa to stos. Jest on sprzętowy. Nie jest.
Zastanawiam się tylko po co sprawdzać to: [syntax=c]USART3 -> CR1 & USART_CR1_TCIE[/syntax] nie rozumiem powodu. Przecież to jest "This bit is set and cleared by software." Programista nie wie czy ustawił to przerwanie czy nie? Dodatkowo ten zapis: [syntax=c]if(( USART3 -> CR1 & USART_CR1_TCIE) && (USART3 -> SR & USART_SR_TC ))[/syntax] wygląda dość...
HSI jest kalibrowane w procesie produkcyjnym. Wartość tej kalibracji można nawet odczytać z jakiegoś tam rejestru. 4\/3!!
1. funkcja bez atrybutu interrupt nie odkłada na stos wartości rejestrów które modyfikuje potem w "ciele funkcji" - czy to znaczy, że wartości tych rejestrów są tracone czy też procesor sam z siebie (sprzętowo) je zapamiętuje na stosie przy wejściu w obsługę przerwania? Informacje jak zwykle w dokumentacji rdzenia. Po co są zerowane trzy ostatnie bity...
Witam. Próbuje stworzyć wyświetlacz RGB. Sercem układu jest mikrokontroler z rodziny STM32 (logika działania 3V3), natomiast za sterowanie LEDami odpowiadałyby rejestry przesuwne zasilane napięciem 5V. Wysoki stan na wejściu rejestru przesuwnego wynosiłby w takim razie 3V3. Moje pytania są następujące: 1. Jakie napięcie uzyskam w rejestrze na wyjściu?...
stm32 rejestr programować stm32 rejestr stm32 usart rejestr
obliczać dławik dławik czyszczenie lasera drukarka dwufunkcyjny ustawić
lampki choinkowe domek ogrodowy
Piła spalinowa gaśnie po nagrzaniu - przyczyny i rozwiązania