Advertisement
MagnusArias

SW | Przyciski (ASM)

May 4th, 2016
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.48 KB | None | 0 0
  1. .global main
  2. .arm
  3.  
  4. .EQU    PB_OER,     0xFFFFF410
  5. .EQU    PB_PER,     0xFFFFF400
  6. .EQU    PB_SODR,    0xFFFFF430
  7. .EQU    PB_CODR,    0xFFFFF434
  8.  
  9. .EQU    PC_OER,     0xFFFFF610
  10. .EQU    PC_PER,     0xFFFFF600
  11. .EQU    PC_SODR,    0xFFFFF630
  12. .EQU    PC_CODR,    0xFFFFF634
  13. .EQU    PC_ODR,     0xFFFFF614
  14. .EQU    PC_PPUER,   0xFFFFF664
  15. .EQU    PC_IFER,    0xFFFFF620
  16. .EQU    PC_PDSR,    0xFFFFF63C
  17.  
  18. .EQU    PMC_PCR,    0xFFFFFC10
  19.  
  20. .EQU    DS1,        (1<<8)
  21. .EQU    DS2,        (1<<29)
  22. .EQU    SW1,        (1<<4)
  23. .EQU    SW2,        (1<<5)
  24.  
  25. .EQU    delay,      655000
  26.  
  27. .section .text
  28. main:
  29.  
  30.     MOV     R1, #DS1
  31.  
  32.     LDR     R2, =PB_OER
  33.     STR     R1, [R2]
  34.     LDR     R2, =PB_PER
  35.     STR     R1, [R2]
  36.  
  37.     LDR     R3, =PB_CODR
  38.     LDR     R4, =PB_SODR
  39.  
  40.     MOV     R1, #DS2
  41.     LDR     R2, =PC_OER
  42.     STR     R1, [R2]
  43.     LDR     R2, =PC_PER
  44.     STR     R1, [R2]
  45.  
  46.     LDR     R5, =PC_CODR
  47.     LDR     R6, =PC_SODR
  48.  
  49.     MOV     R1, #4
  50.     LDR     R2, =PMC_PCR
  51.     STR     R1, [R2]
  52.  
  53.     MOV     R1, #SW1
  54.     LDR     R2, =PC_ODR
  55.     STR     R1, [R2]
  56.     LDR     R2, =PC_PPUER
  57.     STR     R1, [R2]
  58.     LDR     R2, =PC_PER
  59.     STR     R1, [R2]
  60.     LDR     R2, =PC_IFER
  61.     STR     R1, [R2]
  62.  
  63.     MOV     R1, #SW2
  64.     LDR     R2, =PC_ODR
  65.     STR     R1, [R2]
  66.     LDR     R2, =PC_PPUER
  67.     STR     R1, [R2]
  68.     LDR     R2, =PC_PER
  69.     STR     R1, [R2]
  70.     LDR     R2, =PC_IFER
  71.     STR     R1, [R2]
  72.  
  73.     LDR     R7, =PC_PDSR
  74.  
  75. MainLoop:
  76.     LDR R0, =delay
  77.     MOV r9, #DS1
  78.  
  79.     loopA:
  80.         SUBS    R0, R0, #1
  81.         STR     R9, [R3]
  82.         BNE loopA
  83.  
  84.     LDR R0, =delay
  85.     loopB:
  86.         SUBS    R0, R0, #1
  87.         STR     R9, [R4]
  88.         BNE loopB
  89.  
  90.     LDR R8, [R7]
  91.  
  92.     TST R8, #SW1
  93.     BEQ IF1
  94.  
  95.     TST R8, #SW2
  96.     BEQ IF2
  97.  
  98. B MainLoop
  99.  
  100. IF1:
  101.     MOV R9, #DS2
  102.     STR R9,[R6]
  103.     B MainLoop
  104. IF2:
  105.     MOV R9, #DS2
  106.     STR R9,[R5]
  107.     B MainLoop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement