Christiaan A
/
BitBandingBlinky
STM32 blinky through bit banding
Fork of mbed_blinky by
main.cpp@10:3a480c091e52, 2016-01-27 (annotated)
- Committer:
- crazyafrican
- Date:
- Wed Jan 27 02:48:46 2016 +0000
- Revision:
- 10:3a480c091e52
- Parent:
- 4:81cea7a352b0
Initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan | 0:7dec7e9ac085 | 1 | #include "mbed.h" |
dan | 0:7dec7e9ac085 | 2 | |
crazyafrican | 10:3a480c091e52 | 3 | //{/*** Bit Banding *******************************************************/ |
crazyafrican | 10:3a480c091e52 | 4 | /* base address for bit banding */ |
crazyafrican | 10:3a480c091e52 | 5 | #define BITBAND_SRAM_REF (0x20000000) |
crazyafrican | 10:3a480c091e52 | 6 | /* base address for bit banding */ |
crazyafrican | 10:3a480c091e52 | 7 | #define BITBAND_SRAM_BASE (0x22000000) |
crazyafrican | 10:3a480c091e52 | 8 | /* base address for bit banding */ |
crazyafrican | 10:3a480c091e52 | 9 | #define BITBAND_PERIPH_REF (0x40000000) |
crazyafrican | 10:3a480c091e52 | 10 | /* base address for bit banding */ |
crazyafrican | 10:3a480c091e52 | 11 | #define BITBAND_PERIPH_BASE (0x42000000) |
crazyafrican | 10:3a480c091e52 | 12 | |
crazyafrican | 10:3a480c091e52 | 13 | /* sram bit band */ |
crazyafrican | 10:3a480c091e52 | 14 | #define BITBAND_SRAM(address, bit) ((void*)(BITBAND_SRAM_BASE + (((uint32_t)address) - BITBAND_SRAM_REF) * 32 + (bit) * 4)) |
crazyafrican | 10:3a480c091e52 | 15 | |
crazyafrican | 10:3a480c091e52 | 16 | /* periph bit band */ |
crazyafrican | 10:3a480c091e52 | 17 | #define BITBAND_PERIPH(address, bit) ((void*)(BITBAND_PERIPH_BASE + (((uint32_t)address) - BITBAND_PERIPH_REF) * 32 + (bit) * 4)) |
crazyafrican | 10:3a480c091e52 | 18 | //}/***********************************************************************/ |
crazyafrican | 10:3a480c091e52 | 19 | |
crazyafrican | 10:3a480c091e52 | 20 | |
crazyafrican | 10:3a480c091e52 | 21 | // Initialise LED1 gpio |
dan | 0:7dec7e9ac085 | 22 | DigitalOut myled(LED1); |
dan | 0:7dec7e9ac085 | 23 | |
crazyafrican | 10:3a480c091e52 | 24 | /* bit-band definition, LED1 is PA_5 */ |
crazyafrican | 10:3a480c091e52 | 25 | #define LED_BB *((volatile unsigned char *)BITBAND_PERIPH(&GPIOA->ODR, 5)) |
crazyafrican | 10:3a480c091e52 | 26 | |
dan | 0:7dec7e9ac085 | 27 | int main() { |
dan | 0:7dec7e9ac085 | 28 | while(1) { |
crazyafrican | 10:3a480c091e52 | 29 | LED_BB = 1; // set led on |
dan | 0:7dec7e9ac085 | 30 | wait(0.2); |
crazyafrican | 10:3a480c091e52 | 31 | LED_BB = 0; // clear led |
stevep | 4:81cea7a352b0 | 32 | wait(0.2); |
stevep | 4:81cea7a352b0 | 33 | } |
dan | 0:7dec7e9ac085 | 34 | } |