David Siorpaes
/
Nucleo_blinky_with_registers
Blinky LED example with registers for PoliMI
main.cpp@0:0dd8ec2326be, 2016-03-18 (annotated)
- Committer:
- daz
- Date:
- Fri Mar 18 11:33:16 2016 +0000
- Revision:
- 0:0dd8ec2326be
Blinky project that makes use of direct register access.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daz | 0:0dd8ec2326be | 1 | #include "mbed.h" |
daz | 0:0dd8ec2326be | 2 | |
daz | 0:0dd8ec2326be | 3 | int main(){ |
daz | 0:0dd8ec2326be | 4 | volatile int i; |
daz | 0:0dd8ec2326be | 5 | |
daz | 0:0dd8ec2326be | 6 | /* Enable RCC GPIOA clock */ |
daz | 0:0dd8ec2326be | 7 | *((uint32_t*)0x40023830) |= (1<<0); |
daz | 0:0dd8ec2326be | 8 | |
daz | 0:0dd8ec2326be | 9 | /* Set PA5 as digital output */ |
daz | 0:0dd8ec2326be | 10 | *((uint32_t*)0x40020000) |= (1<<10); |
daz | 0:0dd8ec2326be | 11 | |
daz | 0:0dd8ec2326be | 12 | while(1) { |
daz | 0:0dd8ec2326be | 13 | /* PA5 on */ |
daz | 0:0dd8ec2326be | 14 | *((uint32_t*)0x40020014) |= (1<<5); |
daz | 0:0dd8ec2326be | 15 | |
daz | 0:0dd8ec2326be | 16 | /* Delay */ |
daz | 0:0dd8ec2326be | 17 | for(i = 5000000; i; i--); |
daz | 0:0dd8ec2326be | 18 | |
daz | 0:0dd8ec2326be | 19 | /* PA5 off */ |
daz | 0:0dd8ec2326be | 20 | *((uint32_t*)0x40020014) &= ~(1<<5); |
daz | 0:0dd8ec2326be | 21 | |
daz | 0:0dd8ec2326be | 22 | /* Delay */ |
daz | 0:0dd8ec2326be | 23 | for(i = 5000000; i; i--); |
daz | 0:0dd8ec2326be | 24 | } |
daz | 0:0dd8ec2326be | 25 | } |