Mercurial > lcfOS
view examples/c3/burn2.c3 @ 300:158068af716c
yafm
author | Windel Bouwman |
---|---|
date | Tue, 03 Dec 2013 18:00:22 +0100 |
parents | test/c3examples/burn2.c3@bd2593de3ff8 |
children | b145f8e6050b |
line wrap: on
line source
/* This file blinks a LED on the STM32F4 discovery board. the board has 4 leds on PD12, PD13, PD14 and PD15 */ module burn2; import stm32f4xx; function int add(int a, int b) { return a + b; } function void init(int pin) { if (pin < 12) { return; } if (pin > 15) { return; } var stm32f4xx:RCC_Type RCC; RCC = cast<stm32f4xx:RCC_Type>(0x40023800); // Enable the clock to port D: RCC->AHB1ENR = RCC->AHB1ENR | (1 << 3); // Memory mapped control registers: var stm32f4xx:GPIO_Type GPIOD; GPIOD = cast<stm32f4xx:GPIO_Type>(0x40020C00); // PD13 == output (01) GPIOD->MODER = (1 << (pin << 1)); GPIOD->ODR = (1 << pin); } function void main() { // Vary between 12 and 15: init(13); var int a; a = 0 while (a < 1000) { a = add(a, 1); } while(true) {} }