Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. 3. ZADATAK :
  2.  
  3. .def tmp = r16
  4. .def mask = r17
  5.  
  6. .cseg
  7. rjmp reset
  8.  
  9. .org $00C // razlika je u Adresi di se nalazi TIMER1 COMPA, razlicito je za ATMEGU 16 i 32 !!!
  10. rjmp trcece_svijetlo
  11.  
  12. reset:
  13. ldi tmp, high(RAMEND)
  14. out SPH, tmp
  15. ldi tmp, low(RAMEND)
  16. out SPL, tmp
  17.  
  18. ldi tmp, 0xff
  19. out DDRA, tmp
  20. out PORTA, tmp
  21.  
  22. //ako koristimo prekide, ne postavljamo COM bitove u registru
  23. ldi tmp, 0 //dakle ovdje ne upisujemo nista
  24. out TCCR1A, tmp
  25.  
  26. ldi tmp, (1 << WGM12) | (1 << CS11) | (1 << CS10) //odabiremo 4ti modalitet i postavljamo CS bitove za prescaler 64
  27. out TCCR1B, tmp
  28.  
  29. ldi tmp, high(11519)
  30. out OCR1AH, tmp
  31. ldi tmp, low(11519)
  32. out OCR1AL, tmp
  33.  
  34. // necemo koristit Overflow prekide ovdje, jer se postavlja Flag na MAX koj inam je 0xffff a pošto je nas TOP (11519) manji od MAX nikad se nece dogodit
  35. ldi tmp, (1 << OCIE1A) //selektivno ukljucili 1A prekid
  36. out TIMSK, tmp
  37.  
  38. sei // globalno omogucavanje prekida
  39.  
  40. main:
  41.  
  42. rjmp main
  43.  
  44. trcece_svijetlo: // timeri koriste prekide zato treba reti
  45. in tmp, PORTA
  46. rol tmp
  47. out PORTA, tmp
  48. reti
  49.  
  50. ; FOC1A = 2 Hz
  51. ; fclk = 7372800 Hz
  52.  
  53. ; FOC1A = fclk / (2 * N * (OCR1A + 1)) formula za izracun prescalera
  54. ; 2 * N * (OCR1A + 1) = fclk / FOC1A
  55. ; OCR1A + 1 = fclk / (2 * N * FOC1A)
  56. ; OCR1A = fclk / (2 * N * FOC1A) - 1
  57.  
  58.  
  59. ; N = 1
  60. ; OCR1A = 737279 TOP je prevelik, nestane u 16 bitni registar
  61.  
  62. ;N = 8
  63. ; OCR1A = 92159 Opet prevelik
  64.  
  65. ;N = 64
  66. ;OCR1A = 11519 --> Stane u registar --> Ovo je naš TOP
  67. ; Uvijek trazimo najmanji prescaler, radi preciznosti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement