Christiaan A
/
BitBandingBlinky
STM32 blinky through bit banding
Fork of mbed_blinky by
Diff: main.cpp
- Revision:
- 10:3a480c091e52
- Parent:
- 4:81cea7a352b0
diff -r 0d1a88e54782 -r 3a480c091e52 main.cpp --- a/main.cpp Thu Oct 29 12:28:39 2015 +0000 +++ b/main.cpp Wed Jan 27 02:48:46 2016 +0000 @@ -1,12 +1,34 @@ #include "mbed.h" +//{/*** Bit Banding *******************************************************/ +/* base address for bit banding */ +#define BITBAND_SRAM_REF (0x20000000) +/* base address for bit banding */ +#define BITBAND_SRAM_BASE (0x22000000) +/* base address for bit banding */ +#define BITBAND_PERIPH_REF (0x40000000) +/* base address for bit banding */ +#define BITBAND_PERIPH_BASE (0x42000000) + +/* sram bit band */ +#define BITBAND_SRAM(address, bit) ((void*)(BITBAND_SRAM_BASE + (((uint32_t)address) - BITBAND_SRAM_REF) * 32 + (bit) * 4)) + +/* periph bit band */ +#define BITBAND_PERIPH(address, bit) ((void*)(BITBAND_PERIPH_BASE + (((uint32_t)address) - BITBAND_PERIPH_REF) * 32 + (bit) * 4)) +//}/***********************************************************************/ + + +// Initialise LED1 gpio DigitalOut myled(LED1); +/* bit-band definition, LED1 is PA_5 */ +#define LED_BB *((volatile unsigned char *)BITBAND_PERIPH(&GPIOA->ODR, 5)) + int main() { while(1) { - myled = 1; + LED_BB = 1; // set led on wait(0.2); - myled = 0; + LED_BB = 0; // clear led wait(0.2); } }