Advertisement
Guest User

Lab 9 Ex5 SysTick solution

a guest
May 7th, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.97 KB | None | 0 0
  1. .type SysTick_Handler, %function
  2. @ --parameters--
  3. @ none
  4. SysTick_Handler:
  5.   push {lr}
  6.  
  7.   bl red_led_toggle
  8.  
  9.   @ Read state of red LED
  10.   ldr r0, =ADR_GPIOB
  11.   ldr r1, =OFS_GPIOx_ODR
  12.   ldr r2, =2
  13.   bl read_bit
  14.   beq SysTick_Handler_disable_EXIT0
  15.  
  16. SysTick_Handler_enable_EXIT0:
  17.   @ First clear both EXTI and NVIC interrupt pending.
  18.   @ EXTI_PR_clear_pending 0
  19.   ldr r0, =(ADR_EXTI + 0x14)
  20.   ldr r1, =(1 << 0)
  21.   str r1, [r0]
  22.   @ NVIC_set ICPR 6
  23.   ldr r0, =ADR_NVIC
  24.   ldr r1, =OFS_NVIC_ICPR0
  25.   ldr r2, =(1 << 6)
  26.   str r2, [r0, r1]
  27.  
  28.   @ Then enable EXTI0 interrupt
  29.   @ NVIC_set ISER 6
  30.   ldr r0, =ADR_NVIC
  31.   ldr r1, =OFS_NVIC_ISER0
  32.   ldr r2, =(1 << 6)
  33.   str r2, [r0, r1]
  34.  
  35.   b SysTick_Handler_end
  36.  
  37. SysTick_Handler_disable_EXIT0:
  38.   @ Simply disables the interrupt
  39.   @ NVIC_set ICER 6
  40.   ldr r0, =ADR_NVIC
  41.   ldr r1, =OFS_NVIC_ICER0
  42.   ldr r2, =(1 << 6)
  43.   str r2, [r0, r1]
  44.  
  45. SysTick_Handler_end:
  46.   pop {lr}
  47.   bx lr
  48. .size SysTick_Handler, .-SysTick_Handler
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement