aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--02-usart/include/core/system.h18
-rw-r--r--02-usart/src/main.c4
2 files changed, 7 insertions, 15 deletions
diff --git a/02-usart/include/core/system.h b/02-usart/include/core/system.h
index c836edc..a636729 100644
--- a/02-usart/include/core/system.h
+++ b/02-usart/include/core/system.h
@@ -9,20 +9,12 @@ typedef __IO struct {
uint32_t reserved0;
- union {
- uint32_t stcs_r; /* SysTick Control and Status Register */
- struct {
- bits_t enable:1;
- bits_t tickint:1;
- bits_t clksource:1;
+#define scb_enable (1 << 0)
+#define scb_tickint (1 << 1)
+#define scb_clksource (1 << 2)
+#define scb_countflag (1 << 16)
+ uint32_t stcs_r; /* SysTick Control and Status Register */
- bits_t reserved0:13;
-
- bits_t countflag:1;
-
- bits_t reserved1:15;
- } stcs_bf;
- };
uint32_t strv_r; /* SysTick Reload Value Register */
uint32_t stcv_r; /* SysTick Current Value Register */
uint32_t stc_r; /* SysTick Calibration Value Register */
diff --git a/02-usart/src/main.c b/02-usart/src/main.c
index 72b3fe7..4602fd3 100644
--- a/02-usart/src/main.c
+++ b/02-usart/src/main.c
@@ -67,10 +67,10 @@ int main()
SCB.strv_r = 10000000;
/* Enable interrupts. */
- SCB.stcs_bf.tickint = 1;
+ regset(SCB.stcs_r, scb_tickint, 1);
/* Start the systick. */
- SCB.stcs_bf.enable = 1;
+ regset(SCB.stcs_r, scb_enable, 1);
usart_printf(&USART2, "Start Countdown Started!\n");
}