Advertisement
KgCro

zadatak 5 L02

Oct 15th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. //L02 zadatak 5
  2.  
  3. .equ delayCnt = 9 // ovo racunamo sa onom formulom za X
  4.  
  5. .def tmp = r16
  6.  
  7. .cseg
  8. rjmp reset
  9.  
  10. reset:
  11. ldi tmp,high(RAMEND)
  12. out SPH, tmp
  13. ldi tmp, low(RAMEND)
  14. out SPL, tmp
  15.  
  16. ldi tmp, 0xff // cijeli port je aktivan,ali ugasen
  17. out DDRA, tmp
  18. out PORTA , tmp
  19.  
  20.  
  21. main:
  22. rcall loadingbar
  23. rcall delay
  24. rjmp main
  25.  
  26. /*
  27. fl = 1 / 0.4 <- frekvencija koja nam treba (u onoj formuli)
  28.  
  29. X = (7372800+(1/0,4)) / ((1/0,4)*197122)) = 15
  30.  
  31. */
  32.  
  33.  
  34.  
  35. loadingbar:
  36. push tmp //pusha na stack
  37. in tmp, PORTA //ucita podatak s porta
  38.  
  39. /*
  40. ako je tmp == 0x00
  41. tmp = 0xff -> sve ih ugasimo
  42. inace
  43. lsr tmp
  44. */
  45. cpi tmp, 0x00 // comparea da vidi ako su upaljene i onda digne zero flag ako jesu
  46. brne inace
  47. ldi tmp, 0xff
  48. rjmp end
  49. inace:
  50. lsr tmp
  51. end:
  52.  
  53. out PORTA, tmp
  54. pop tmp // vraca iz stacka
  55. ret
  56.  
  57. delay:
  58. push r17
  59. push r18
  60. push r19
  61.  
  62. clr r17
  63. clr r18
  64. ldi r19, delayCnt
  65.  
  66. delay_loop:
  67. dec r17 ; 0,255 , 254... , 0
  68. brne delay_loop
  69. dec r18 ; 0,255,254,...,0
  70. brne delay_loop
  71. dec r19 ; n,n-1
  72. brne delay_loop
  73. pop r19
  74. pop r18
  75. pop r17
  76.  
  77. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement