Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.60 KB | None | 0 0
  1. /* Roteiro 3 - Programa 3 */
  2.  
  3. /* This assembly file uses GNU syntax */
  4.     .text
  5.         .align     2
  6.         .global    main
  7.         .type main function
  8.  
  9. @-----------------------------------
  10. @ Funcao de gastar tempo
  11. @ Entradas:
  12. @    r0 - com a valor de tempo
  13. @ Altera:
  14. @    r0 = 0
  15. @    Flags
  16. @-----------------------------------
  17. delay:
  18.     push {lr}
  19. again:
  20.     cmp r0,#0
  21.     beq return
  22.     sub r0,#1
  23.     b   again
  24. return:
  25.     pop {pc}
  26.  
  27. @-----------------------------------
  28. @ Funcao Main
  29. @-----------------------------------
  30.  main:
  31. @   Habilita clock do PORTB (System Clock Gating Control)
  32.     ldr r3,SIM_SCGC5
  33.     ldr r2,[r3]
  34.     movs r1,#128
  35.     lsl r1,r1,#3
  36.     orr r2,r1
  37.     str r2,[r3]
  38.    
  39. @   Zera bits de MUX de PTB18
  40.     ldr r3,PORTB_PCR18
  41.     ldr r2,[r3]
  42.     ldr r1,MUXMASK
  43.     and r2,r1
  44.     str r2,[r3]
  45.    
  46. @   Seta bit 0 do MUX de PTB18, assim os bits de MUX serao 001
  47.     ldr r3,PORTB_PCR18
  48.     ldr r2,[r3]
  49.         movs r1,#128
  50.     lsl r1,r1,#1
  51.     orr r2,r1
  52.     str r2,[r3]
  53.    
  54. @   Seta pino 18 do PORTB como saida
  55.     ldr r3,GPIOB_PDDR
  56.     ldr r2,[r3]
  57.         movs r1,#128
  58.     lsl r1,r1,#11
  59.     orr r2,r1
  60.     str r2,[r3]
  61.    
  62.  
  63. toggle:
  64. @   Toogle bit 18, LED vermelho em PTB18
  65.     ldr r3,GPIOB_PTOR
  66.     ldr r2,[r3]
  67.     movs r1,#128
  68.     lsl r1,r1,#11
  69.     orr r2,r1
  70.     str r2,[r3]
  71.    
  72. @   Espera um tempo
  73.     ldr r0,WAIT
  74.     bl delay          
  75.  
  76. @   Repete para sempre
  77.     b toggle    
  78.    
  79.     .align  2
  80.  
  81. SIM_SCGC5:
  82.     .word   0x40048038
  83. PORTB_PCR18:
  84.     .word   0x4004A048
  85. GPIOB_PDDR:
  86.     .word   0x400FF054
  87. GPIOB_PTOR:
  88.     .word   0x400FF04C
  89. MUXMASK:
  90.     .word   0xFFFFF8FF
  91. WAIT:
  92.     .word   5000000
  93.  
  94. .end @ final do arquivo assembly
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement