-
Data: 2022-07-26 09:40:55
Temat: Re: STM32 i HAL -- pierwsze podejście, pierwsze pytania
Od: "Grzegorz Niemirowski" <g...@g...net> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Marek <f...@f...com> napisał(a):
> Ale jest coś takiego jak rejestry SET/CLR/INV (w pic32/mips), dzięki
> którym za pomocą jednej operacji atomowej można ustawić, skasować lub
> przestawić dowolny bit na porcie czy rejestrze?
> Np. PORTESET=16 ustawi bit na 4 pinie portu E albo TRISEINV=16 przestawi
> bit kierunku na pinie 4 portu E.
Jest takie coś, nazywa się bitbanding.
#include "stm32f4xx.h"
#define BITBAND_PERI_REF 0x40000000
#define BITBAND_PERI_BASE 0x42000000
#define BITBAND_PERI(a,b) ((BITBAND_PERI_BASE + (a-BITBAND_PERI_REF)*32 +
(b*4)))
#define GPIOA_ODR ((unsigned int)&(GPIOA->ODR))
#define GPIOA_ODR5 *((volatile unsigned char *) (BITBAND_PERI(GPIOA_ODR,
5)))
#define GPIOA_ODR6 *((volatile unsigned char *) (BITBAND_PERI(GPIOA_ODR,
6)))
void main(void) {
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //włącz GPIOA
GPIOA->MODER |= GPIO_MODER_MODER5_0; //LED1 - output
GPIOA->MODER |= GPIO_MODER_MODER6_0; //LED2 - output
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR7_0; //przycisk - pull up
while(1) {
if (GPIOA->IDR & GPIO_IDR_IDR_7) { //przycisk puszczony
GPIOA_ODR5 = 1;
GPIOA_ODR6 = 0;
} else { //naciśnięty
GPIOA_ODR5 = 0;
GPIOA_ODR6 = 1;
}
}
}
--
Grzegorz Niemirowski
https://www.grzegorz.net/
Następne wpisy z tego wątku
- 26.07.22 10:00 MKi
- 26.07.22 10:09 Grzegorz Niemirowski
- 26.07.22 11:48 jacek pozniak
- 26.07.22 12:01 MKi
- 26.07.22 12:03 MKi
- 26.07.22 13:48 stary grzyb
- 26.07.22 17:13 Arnold Ziffel
Najnowsze wątki z tej grupy
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
Najnowsze wątki
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-02 Znaleziony
- 2025-07-02 Warszawa => Data Developer <=
- 2025-07-02 Kraków => Kotlin Developer <=