diff options
-rw-r--r-- | 02-usart/include/core/system.h | 18 | ||||
-rw-r--r-- | 02-usart/src/main.c | 4 |
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"); } |