Advertisement
Guest User

Untitled

a guest
Jul 4th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .NOLIST
  2. .INCLUDE "m8def.inc"
  3. .LIST
  4. .DEF can = R17
  5. .DEF kan = R18
  6. .DEF ban = R19
  7. .equ c1 = 1000
  8. .equ c2 = 30000
  9. .equ c3 = 15000
  10. .equ c4 = 63500
  11.  
  12. init:
  13.     // Stack
  14.     ldi can,High(RAMEND)
  15.     out SPH,can
  16.     ldi can,LOW(RAMEND)
  17.     out SPL,can
  18.  
  19.     // Timer setzen
  20.     ldi R25,HIGH(c1)
  21.     ldi R24,LOW(c1)
  22.  
  23.     // Ausgรคnge
  24.     ldi can,0xff
  25.     out ddrc,can
  26.     ldi kan,0xff
  27.     out ddrd,kan
  28.     ldi ban,0xff
  29.     out ddrb,ban
  30.  
  31.     // Timer
  32.     ldi can, (1<<ISC01) | (1<<ISC11)
  33.     out MCUCR, can
  34.     ldi can, (1<<INT0) | (1<<INT1)
  35.     out GICR, can
  36.     sei
  37.  
  38. Main:
  39.     step1:
  40.         sbiw r24,1
  41.         ldi can,0b00000001
  42.         out portc,can
  43.         ldi ban,0b000000000
  44.         out portb,ban
  45.         ldi kan,0b00000000
  46.         out portd,kan
  47.         ldi R25,HIGH(c3)
  48.         ldi R24,LOW(c3)
  49.     rcall Looptimer
  50.  
  51.     step2:
  52.         sbiw r24,1
  53.         ldi can,0b00000010
  54.         out portc,can
  55.         ldi ban,0b000000000
  56.         out portb,ban
  57.         ldi kan,0b00000000
  58.         out portd,kan
  59.         ldi R25,HIGH(c3)
  60.         ldi R24,LOW(c3)
  61.     rcall Looptimer
  62.  
  63.     step3:
  64.         sbiw r24,1
  65.         ldi can,0b00000100
  66.         out portc,can
  67.         ldi ban,0b000000000
  68.         out portb,ban
  69.         ldi kan,0b00000000
  70.         out portd,kan
  71.         ldi R25,HIGH(c3)
  72.         ldi R24,LOW(c3)
  73.     rcall Looptimer
  74.  
  75.     step4:
  76.         sbiw r24,1
  77.         ldi can,0b00001000
  78.         out portc,can
  79.         ldi ban,0b000000000
  80.         out portb,ban
  81.         ldi kan,0b00000000
  82.         out portd,kan
  83.         ldi R25,HIGH(c3)
  84.         ldi R24,LOW(c3)
  85.     rcall Looptimer
  86.  
  87.     step5:
  88.         sbiw r24,1
  89.         ldi can,0b00010000
  90.         out portc,can
  91.         ldi ban,0b000000000
  92.         out portb,ban
  93.         ldi kan,0b00000000
  94.         out portd,kan
  95.         ldi R25,HIGH(c3)
  96.         ldi R24,LOW(c3)
  97.     rcall Looptimer
  98.  
  99.     step6:
  100.         sbiw r24,1
  101.         ldi can,0b00100000
  102.         out portc,can
  103.         ldi ban,0b000000000
  104.         out portb,ban
  105.         ldi kan,0b00000000
  106.         out portd,kan
  107.         ldi R25,HIGH(c3)
  108.         ldi R24,LOW(c3)
  109.     rcall Looptimer
  110.  
  111.     step7:
  112.         sbiw r24,1
  113.         ldi can,0b00000000
  114.         out portc,can
  115.         ldi ban,0b000000001
  116.         out portb,ban
  117.         ldi kan,0b00000000
  118.         out portd,kan
  119.         ldi R25,HIGH(c3)
  120.         ldi R24,LOW(c3)
  121.     rcall Looptimer
  122.  
  123.     step8:
  124.         sbiw r24,1
  125.         ldi can,0b00000000
  126.         out portc,can
  127.         ldi ban,0b000000010
  128.         out portb,ban
  129.         ldi kan,0b00000000
  130.         out portd,kan
  131.         ldi R25,HIGH(c3)
  132.         ldi R24,LOW(c3)
  133.     rcall Looptimer
  134.  
  135.     step9:
  136.         sbiw r24,1
  137.         ldi can,0b00000000
  138.         out portc,can
  139.         ldi ban,0b000000100
  140.         out portb,ban
  141.         ldi kan,0b00000000
  142.         out portd,kan
  143.         ldi R25,HIGH(c3)
  144.         ldi R24,LOW(c3)
  145.     rcall Looptimer
  146.  
  147.     step91:
  148.         sbiw r24,1
  149.         ldi can,0b00000000
  150.         out portc,can
  151.         ldi ban,0b000000100
  152.         out portb,ban
  153.         ldi kan,0b00000000
  154.         out portd,kan
  155.         ldi R25,HIGH(c3)
  156.         ldi R24,LOW(c3)
  157.     rcall Looptimer
  158.  
  159.     step10:
  160.         sbiw r24,1
  161.         ldi can,0b00000000
  162.         out portc,can
  163.         ldi ban,0b000000010
  164.         out portb,ban
  165.         ldi kan,0b00000000
  166.         out portd,kan
  167.         ldi R25,HIGH(c3)
  168.         ldi R24,LOW(c3)
  169.     rcall Looptimer
  170.  
  171.     step11:
  172.         sbiw r24,1
  173.         ldi can,0b00000000
  174.         out portc,can
  175.         ldi ban,0b000000001
  176.         out portb,ban
  177.         ldi kan,0b00000000
  178.         out portd,kan
  179.         ldi R25,HIGH(c3)
  180.         ldi R24,LOW(c3)
  181.     rcall Looptimer
  182.  
  183.     step12:
  184.         sbiw r24,1
  185.         ldi can,0b00100000
  186.         out portc,can
  187.         ldi ban,0b000000000
  188.         out portb,ban
  189.         ldi kan,0b00000000
  190.         out portd,kan
  191.         ldi R25,HIGH(c3)
  192.         ldi R24,LOW(c3)
  193.     rcall Looptimer
  194.  
  195.     step13:
  196.         sbiw r24,1
  197.         ldi can,0b00010000
  198.         out portc,can
  199.         ldi ban,0b000000000
  200.         out portb,ban
  201.         ldi kan,0b00000000
  202.         out portd,kan
  203.         ldi R25,HIGH(c3)
  204.         ldi R24,LOW(c3)
  205.     rcall Looptimer
  206.  
  207.     step14:
  208.         sbiw r24,1
  209.         ldi can,0b00001000
  210.         out portc,can
  211.         ldi ban,0b000000000
  212.         out portb,ban
  213.         ldi kan,0b00000000
  214.         out portd,kan
  215.         ldi R25,HIGH(c3)
  216.         ldi R24,LOW(c3)
  217.     rcall Looptimer
  218.  
  219.     step15:
  220.         sbiw r24,1
  221.         ldi can,0b00000100
  222.         out portc,can
  223.         ldi ban,0b000000000
  224.         out portb,ban
  225.         ldi kan,0b00000000
  226.         out portd,kan
  227.         ldi R25,HIGH(c3)
  228.         ldi R24,LOW(c3)
  229.     rcall Looptimer
  230.  
  231.     step16:
  232.         sbiw r24,1
  233.         ldi can,0b00000010
  234.         out portc,can
  235.         ldi ban,0b000000000
  236.         out portb,ban
  237.         ldi kan,0b00000000
  238.         out portd,kan
  239.         ldi R25,HIGH(c3)
  240.         ldi R24,LOW(c3)
  241.     rcall Looptimer
  242.  
  243.     step17:
  244.         sbiw r24,1
  245.         ldi can,0b00000001
  246.         out portc,can
  247.         ldi ban,0b000000000
  248.         out portb,ban
  249.         ldi kan,0b00000000
  250.         out portd,kan
  251.         ldi R25,HIGH(c3)
  252.         ldi R24,LOW(c3)
  253.     rcall Looptimer
  254.     reti
  255.  
  256. Looptimer:
  257.     ldi XH, HIGH(c3)
  258.     ldi XL, LOW(c3)
  259.  
  260.     Loop:
  261.         sbiw XL, 1
  262.         brne Loop
  263.     reti
  264.  
  265. .exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement