Commit 9114076126b5ba4eb2faabb7fa5461ad689b76e4
1 parent
4fdf0b0a
Final version for sw lab
Showing
1 changed file
with
9 additions
and
76 deletions
virtual_lab/main.c
1 | #include <stdint.h> | 1 | #include <stdint.h> |
2 | #include <stdbool.h> | 2 | #include <stdbool.h> |
3 | 3 | ||
4 | -#define PB_PER (*((volatile uint32_t*)0xFFFFF400)) | ||
5 | -#define PB_OER (*((volatile uint32_t*)0xFFFFF410)) | ||
6 | -#define PB_SODR (*((volatile uint32_t*)0xFFFFF430)) | ||
7 | -#define PB_CODR (*((volatile uint32_t*)0xFFFFF434)) | ||
8 | -#define PB_PDSR (*((volatile uint32_t*)0xFFFFF43C)) | ||
9 | - | ||
10 | -#define PC_PER (*((volatile uint32_t*)0xFFFFF600)) | ||
11 | -#define PC_ODR (*((volatile uint32_t*)0xFFFFF614)) | ||
12 | -#define PC_OER (*((volatile uint32_t*)0xFFFFF610)) | ||
13 | -#define PC_SODR (*((volatile uint32_t*)0xFFFFF630)) | ||
14 | -#define PC_CODR (*((volatile uint32_t*)0xFFFFF634)) | ||
15 | -#define PC_PDSR (*((volatile uint32_t*)0xFFFFF63C)) | ||
16 | -#define PC_PUER (*((volatile uint32_t*)0xFFFFF664)) | ||
17 | - | ||
18 | -#define PMC_PCER (*((volatile uint32_t*)0xFFFFFC10)) | ||
19 | - | ||
20 | -#define CLK_PIO_CDE 4 | ||
21 | - | ||
22 | -#define DS1 (1 << 8) //PB8 | ||
23 | -#define DS2 (1 << 29) //PC29 | ||
24 | - | ||
25 | -#define BT2 (1 << 4) //PC4 | ||
26 | -#define BT1 (1 << 5) //PC5 | 4 | +{ |
5 | +// add registers here | ||
6 | +} | ||
27 | 7 | ||
28 | void delay_ms (int delay) | 8 | void delay_ms (int delay) |
29 | { | 9 | { |
30 | - volatile uint64_t DelayStep; | ||
31 | - for(DelayStep = 0; DelayStep < 100000*delay; DelayStep++); | 10 | +// add code here |
32 | } | 11 | } |
33 | 12 | ||
34 | void ConfigureLEDs (void) | 13 | void ConfigureLEDs (void) |
35 | { | 14 | { |
36 | - PB_PER = DS1; | ||
37 | - PC_PER = DS2; | ||
38 | - PB_OER = DS1; | ||
39 | - PC_OER = DS2; | ||
40 | - PB_SODR = DS1; | ||
41 | - PC_SODR = DS2; | 15 | +// add code here |
42 | } | 16 | } |
43 | 17 | ||
44 | - | ||
45 | void ConfigureButtons (void) | 18 | void ConfigureButtons (void) |
46 | { | 19 | { |
47 | - PMC_PCER = 1 << CLK_PIO_CDE; | ||
48 | - PC_PER = BT1 | BT2; | ||
49 | - PC_ODR = BT1 | BT2; | ||
50 | - PC_PUER = BT1 | BT2; | 20 | +// add code here |
51 | } | 21 | } |
52 | 22 | ||
53 | -int main(void) | ||
54 | -{ | ||
55 | - int Decimator=0; | ||
56 | - ConfigureLEDs(); | ||
57 | - ConfigureButtons(); | ||
58 | -#if 0 | ||
59 | - PMC_PCER = 1 << PER_ID_PBIOC_TO_PIOE; | ||
60 | - PB_PER = DS1; //PIO enable register | ||
61 | -// PB_PDR = 0xffffffff; //PIO disable register | ||
62 | - | ||
63 | - PB_OER = DS1; //PIO controller output enable register | ||
64 | - PC_PER = DS2 | BT1 | BT2; //PIO enable register | ||
65 | - PC_OER = DS2; //PIO controller output enable register | ||
66 | - PC_ODR = BT1 | BT2; | ||
67 | - PC_PUER = BT1 | BT2; | ||
68 | -#endif | ||
69 | - | ||
70 | - while(true) | ||
71 | - { | ||
72 | - for (Decimator=0; Decimator<100; Decimator++) | ||
73 | - { | ||
74 | - if((PC_PDSR & BT1) == 0) | ||
75 | - PB_SODR = DS1; | ||
76 | 23 | ||
77 | - if((PC_PDSR & BT2) == 0) | ||
78 | - PB_CODR = DS1; | ||
79 | - delay_ms(10); | ||
80 | - } | ||
81 | - | ||
82 | - PC_CODR = DS2; | ||
83 | 24 | ||
84 | - for (Decimator=0; Decimator<100; Decimator++) | ||
85 | - { | ||
86 | - if((PC_PDSR & BT1) == 0) | ||
87 | - PB_SODR = DS1; | ||
88 | - | ||
89 | - if((PC_PDSR & BT2) == 0) | ||
90 | - PB_CODR = DS1; | ||
91 | - delay_ms(10); | ||
92 | - } | 25 | +int main(void) |
26 | +{ | ||
27 | +// add code here | ||
93 | 28 | ||
94 | - PC_SODR = DS2; | ||
95 | - } | ||
96 | } | 29 | } |