STM32 blinky through bit banding

Dependencies:   mbed

Fork of mbed_blinky by Mbed

Committer:
crazyafrican
Date:
Wed Jan 27 02:48:46 2016 +0000
Revision:
10:3a480c091e52
Parent:
4:81cea7a352b0
Initial

Who changed what in which revision?

UserRevisionLine numberNew 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 }