annotate python/stm32f4/blink.c3 @ 228:7f18ed9b6b7e

Removal of emptystatement class
author Windel Bouwman
date Sat, 13 Jul 2013 11:12:24 +0200
parents 848c4b15fd0b
children 521567d17388
rev   line source
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
1 // This file blinks a LED on the STM32F4 discovery board.
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
2 package blink;
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
3
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
4 // import bla
228
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
5 type struct {
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
6 // uint32_t SR;
228
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
7 } TIM_Type;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
8
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
9 type struct {
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
10 int MODER;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
11 int OTYPER;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
12 int OSPEEDR;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
13 int PUPDR;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
14 int IDR;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
15 int ODR;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
16 } GPIO_Type;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
17
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
18 const GPIO_Type* GPIOD = cast<GPIO_Type*>(0x400000);
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
19
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
20 function void delay(int count)
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
21 {
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
22 while (count > 0)
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
23 {
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
24 count = count - 1;
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
25 }
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
26 }
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
27
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
28 // Globals:
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
29 var int divider;
212
62386bcee1ba Added parser combinator lib
Windel Bouwman
parents: 207
diff changeset
30 //const TIM2_s *TIM2;// = (TIM2_s*)0x40004;
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
31
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
32 // Functions:
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
33 function void tim2_handler()
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
34 {
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
35 // if (TIM2->SR & TIM_SR_UIF)
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
36 if (true)
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
37 {
207
8b2f20aae086 cleaning of files
Windel Bouwman
parents: 205
diff changeset
38 divider = divider + 1;
219
1fa3e0050b49 Expanded ad hoc code generator
Windel Bouwman
parents: 212
diff changeset
39 if (divider == 100000)
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
40 {
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
41 divider = 0;
212
62386bcee1ba Added parser combinator lib
Windel Bouwman
parents: 207
diff changeset
42 //GPIOD->ODR ^= (1 << 13);
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
43 }
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
44 }
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
45 }
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
46
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
47 function void main()
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
48 {
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
49 divider = 0;
219
1fa3e0050b49 Expanded ad hoc code generator
Windel Bouwman
parents: 212
diff changeset
50
228
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
51 // delay(100);
7f18ed9b6b7e Removal of emptystatement class
Windel Bouwman
parents: 221
diff changeset
52
219
1fa3e0050b49 Expanded ad hoc code generator
Windel Bouwman
parents: 212
diff changeset
53 var int* RCC_AHB1ENR;
221
848c4b15fd0b pointers
Windel Bouwman
parents: 220
diff changeset
54 RCC_AHB1ENR = cast<int*>(0x40003022);
220
3f6c30a5d234 Major change in expression parsing to enable pointers and structs
Windel Bouwman
parents: 219
diff changeset
55 *RCC_AHB1ENR = *RCC_AHB1ENR | 8943;
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
56 /*
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
57 RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
58 RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
59
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
60 GPIOD->MODER = (1<<26);
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
61
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
62 NVIC->ISER[0] |= 1<< (TIM2_IRQn);
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
63
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
64 TIM2->PSC = 0xE000;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
65 TIM2->DIER |= TIM_DIER_UIE;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
66 TIM2->ARR = 0xE000;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
67 TIM2->CR1 |= TIM_CR1_ARPE | TIM_CR1_CEN;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
68 TIM2->EGR = 1;
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
69
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
70 */
205
d77cb5962cc5 Added some handcoded arm code generation
Windel Bouwman
parents: 204
diff changeset
71 while(true) {}
204
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
72 }
de3a68f677a5 Added long comment to c3 parser
Windel Bouwman
parents:
diff changeset
73