-
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
- Klip testowy, jak sie to używa
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
Najnowsze wątki
- 2025-11-12 #Motodziennik 352 - STRACH SIĘ BAĆ - Zombi VS radio AM, prawo do naprawy i niemiecki pomysł...
- 2025-11-12 Aparatu szukam
- 2025-11-12 Azylant na Węgrzech donosi prokuraturze na ministra sprawiedliwości/prokuratora generalnego
- 2025-11-12 Wrocław => Specjalista ds. Marketingu Online (PPC) <=
- 2025-11-12 Gdańsk => Delphi Programmer <=
- 2025-11-12 Białystok => Generative AI Engineer <=
- 2025-11-12 Białystok => Gen AI Engineer <=
- 2025-11-12 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-11-12 Gdańsk => Programista Delphi <=
- 2025-11-12 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-11-12 Warszawa => Engineering Manager <=
- 2025-11-12 Białystok => Senior Microsoft Dynamics 365 Business Central Konsultan
- 2025-11-12 Większy zasięg w elektrykach nikomu nie jest potrzebny
- 2025-11-12 Za dwa lata nie będzie wielu usług (19xxx)
- 2025-11-11 BRAK emerytury z ZUS po 20 LATACH placenia skladek




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei