Advertisement
Guest User

Untitled

a guest
Sep 4th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.73 KB | None | 0 0
  1. .device atmega168
  2.  
  3. .equ DDRB = 4
  4. .equ PORTB = 5
  5.  
  6. ldi r16, $20 ; we're going to input data
  7. out DDRB, r16 ; copy it to DDRB
  8.  
  9. ldi r17, $0 ; set counters to 0
  10. ldi r18, $0 ; ^
  11. ldi r19, $0 ; ^
  12.  
  13. jmp _start
  14.  
  15. _led_on:
  16.     ldi r16, $20
  17.     out PORTB, r16 ; turns on led
  18.     ret
  19.  
  20. _led_off:
  21.     ldi r16, $0
  22.     out PORTB, r16 ; turns off led
  23.     ret
  24.  
  25. _wait:
  26.     inc r17 ; increment 17
  27.     cpi r17, $FF ; until it hits FF
  28.     brlo _wait ; jumps to _wait if it's not FF yet
  29.  
  30.     inc r18
  31.     cpi r18, $FF
  32.     brlo _wait
  33.  
  34.     inc r19
  35.     cpi r19, $10
  36.     brlo _wait
  37.    
  38.     ldi r17, $0
  39.     ldi r18, $0
  40.     ldi r19, $0
  41.     ret
  42.  
  43.  
  44. _start:
  45.     call _wait
  46.     call _led_on
  47.     call _wait
  48.     call _led_off
  49.     jmp _start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement