-
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
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
Najnowsze wątki
- 2025-05-14 Pomysł na kol. "sukces po polsku": największa huśtawka na świecie
- 2025-05-14 Wyrok na samochody spalinowe. Szef Renault: auta zdrożeją o 40 proc.
- 2025-05-13 Polska się zmienia
- 2025-05-13 Dlaczego Polska reklamuje Szelowe paliwa - Bolidy mają być solarne, a nie spalinowe
- 2025-05-13 Trawnika...
- 2025-05-13 48-latka, pracując w urzędzie, przyjmował łapówki, a w zamian wydawał pozytywne decyzje administracyjne dotyczące gospodarowania odpadami.
- 2025-05-13 według raportu Najwyższej Izby Kontroli z 2014 r. ustawiona ręcznie tolerancja fotoradarów wynosiła często nawet... 25 km na godz.!
- 2025-05-13 Na tapet wraca głośny temat niesprawiedliwe wystawianych mandatów za przekroczenie prędkości.
- 2025-05-13 Białystok => Senior Node.js Developer (Nest.js framework) <=
- 2025-05-13 Gdańsk => Controlling systems Consultant <=
- 2025-05-13 Białystok => Delphi Programmer <=
- 2025-05-13 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-13 zagadałem dziś babę
- 2025-05-13 W tym urządzeniu ugotujesz wodę wszędzie. Bez podłączania do prądu
- 2025-05-13 W tym urządzeniu ugotujesz wodę wszędzie. Bez podłączania do prądu