Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.21 KB | None | 0 0
  1. ..... ...
  2. 3fa0: 3FFF JMP (0x3fa0)
  3. 3fa2: 3FFF JMP (0x3fa2)
  4. 3fa4: 3FFF JMP (0x3fa4)
  5. 3fa6: 3FFF JMP (0x3fa6)
  6. 3fa8: 3FFF JMP (0x3fa8)
  7. 3faa: 3FFF JMP (0x3faa)
  8. 3fac: 3FFF JMP (0x3fac)
  9. 3fae: 3FFF JMP (0x3fae)
  10. 3fb0: 3FFF JMP (0x3fb0)
  11. 3fb2: 3FFF JMP (0x3fb2)
  12. 3fb4: 3FFF JMP (0x3fb4)
  13. 3fb6: 3FFF JMP (0x3fb6)
  14. 3fb8: 3FFF JMP (0x3fb8)
  15. 3fba: 3FFF JMP (0x3fba)
  16. 3fbc: 3FFF JMP (0x3fbc)
  17. 3fbe: 3FFF JMP (0x3fbe)
  18. 3fc0: 3FFF JMP (0x3fc0)
  19. 3fc2: 3FFF JMP (0x3fc2)
  20. 3fc4: 3FFF JMP (0x3fc4)
  21. 3fc6: 3FFF JMP (0x3fc6)
  22. 3fc8: 3FFF JMP (0x3fc8)
  23. 3fca: 3FFF JMP (0x3fca)
  24. 3fcc: 3FFF JMP (0x3fcc)
  25. 3fce: 3FFF JMP (0x3fce)
  26. 3fd0: 3FFF JMP (0x3fd0)
  27. 3fd2: 3FFF JMP (0x3fd2)
  28. 3fd4: 3FFF JMP (0x3fd4)
  29. 3fd6: 3FFF JMP (0x3fd6)
  30. 3fd8: 3FFF JMP (0x3fd8)
  31. 3fda: 3FFF JMP (0x3fda)
  32. 3fdc: 3FFF JMP (0x3fdc)
  33. 3fde: 3FFF JMP (0x3fde)
  34. 3fe0: 3FFF JMP (0x3fe0)
  35. 3fe2: 3FFF JMP (0x3fe2)
  36. 3fe4: 3FFF JMP (0x3fe4)
  37. 3fe6: 3FFF JMP (0x3fe6)
  38. 3fe8: 3FFF JMP (0x3fe8)
  39. 3fea: 3FFF JMP (0x3fea)
  40. 3fec: 3FFF JMP (0x3fec)
  41. 3fee: 3FFF JMP (0x3fee)
  42. 3ff0: 3FFF JMP (0x3ff0)
  43. 3ff2: 3FFF JMP (0x3ff2)
  44. 3ff4: 3FFF JMP (0x3ff4)
  45. 3ff6: 3FFF JMP (0x3ff6)
  46. 3ff8: 3FFF JMP (0x3ff8)
  47. 3ffa: 3FFF JMP (0x3ffa)
  48. 3ffc: 3FFF JMP (0x3ffc)
  49. 3ffe: 3FFF JMP (0x3ffe)
  50. 19 RESET mov.w #__STACK_END,SP ; Initialize stackpointer
  51. $../main.asm:19:99$(), RESET():
  52. 4000: 4031 3900 MOV.W #0x3900,SP
  53. 20 StopWDT mov.w #WDTPW|WDTHOLD,&WDTCTL ; Stop watchdog timer
  54. StopWDT:
  55. 4004: 40B2 5A80 0120 MOV.W #0x5a80,&Watchdog_Timer_WDTCTL
  56. 28 init BIS.B #0FFh,&P3DIR ;set port 3 as output
  57. init:
  58. 400a: D3F2 001A BIS.B #-1,&Port_3_4_P3DIR
  59. 29 CLR.B &P3OUT
  60. 400e: 43C2 0019 CLR.B &Port_3_4_P3OUT
  61. 30 CLR R9
  62. 4012: 4309 CLR.W R9
  63. 31 CLR R5
  64. 4014: 4305 CLR.W R5
  65. 33 MOV.B #00Ah, &P1IE ;set port 1 as interrupt + input
  66. 4016: 40F2 000A 0025 MOV.B #0x000a,&Port_1_2_P1IE
  67. 34 MOV.B #00Ah, &P1IES
  68. 401c: 40F2 000A 0024 MOV.B #0x000a,&Port_1_2_P1IES
  69. 41 CLR.B &P1IFG
  70. main:
  71. 4022: 43C2 0023 CLR.B &Port_1_2_P1IFG
  72. 42 BIS #GIE+CPUOFF+SCG1+SCG0, SR
  73. 4026: D032 00D8 BIS.W #0x00d8,SR
  74. 43 MOV.B #00Ah, &P1IE ;enable interrupts
  75. 402a: 40F2 000A 0025 MOV.B #0x000a,&Port_1_2_P1IE
  76. 47 MOV.B &P1IN, R6
  77. mainloop:
  78. 4030: 4256 0020 MOV.B &Port_1_2_P1IN,R6
  79. 48 BIT.B #08h, R6 ;check if the load button was clicked
  80. 4034: B276 BIT.B #8,R6
  81. 49 JZ load
  82. 4036: 2418 JEQ (load)
  83. 50 CMP #01h, R8
  84. 4038: 9318 CMP.W #1,R8
  85. 51 MOV.B #0, R8 ;reset the flag
  86. 403a: 4348 CLR.B R8
  87. 52 JZ main ;there was a load but it's not anymore, so go to sleep
  88. 403c: 27F2 JEQ (main)
  89. 53 BIT.B #02h, R6 ;just in case test if clock was pressed
  90. 403e: B366 BIT.B #2,R6
  91. 54 JNZ main ;not zero - not pressed
  92. 4040: 23F0 JNE (main)
  93. 57 MOV.W #007FFh, R7 ;set the loop counter
  94. jittersetup:
  95. 4042: 4037 07FF MOV.W #0x07ff,R7
  96. 58 BIS #GIE, SR ;enable interrupts
  97. 4046: D232 EINT
  98. 61 DEC.W R7 ;2 cycles
  99. jitterloop:
  100. 4048: 8317 DEC.W R7
  101. 62 MOV.B &P1IN, R6 ;3 cycles
  102. 404a: 4256 0020 MOV.B &Port_1_2_P1IN,R6
  103. 63 BIT #08h, R6 ;2 cycles
  104. 404e: B236 BIT.W #8,R6
  105. 64 JZ load ;2 cycles
  106. 4050: 240B JEQ (load)
  107. 65 BIT #02h, R6 ;test the clock input - we know "on" is "0" 2 cycles
  108. 4052: B326 BIT.W #2,R6
  109. 66 JNZ main ;if it was 1, go to sleep 2 cycles
  110. 4054: 23E6 JNE (main)
  111. 67 CMP.W #0, R7 ;if we got to 2 cycles
  112. 4056: 9307 TST.W R7
  113. 68 JNZ jitterloop ;2 cycles
  114. 4058: 23F7 JNE (jitterloop)
  115. 71 BIC #GIE, SR ;disable interrupts
  116. decrease:
  117. 405a: C232 DINT
  118. 72 BIT.B #01h, R8 ;check if the load button was clicked in the meanwhile
  119. 405c: B358 BIT.B #1,R8
  120. 73 JNZ load ;otherwise, clock was clicked
  121. 405e: 2004 JNE (load)
  122. 74 DEC.B R5 ;decrease, set out and go to sleep
  123. 4060: 8355 DEC.B R5
  124. 75 MOV.B R5, &P3OUT
  125. 4062: 45C2 0019 MOV.B R5,&Port_3_4_P3OUT
  126. 76 JMP main
  127. 4066: 3FDD JMP (main)
  128. 79 MOV.B &P2IN, R5 ;move the values set by the user
  129. load:
  130. 4068: 4255 0028 MOV.B &Port_1_2_P2IN,R5
  131. 80 MOV.B R5, &P3OUT
  132. 406c: 45C2 0019 MOV.B R5,&Port_3_4_P3OUT
  133. 81 CLR R8
  134. 4070: 4308 CLR.W R8
  135. 82 OR #0F5h, R6
  136. 4072: D036 00F5 BIS.W #0x00f5,R6
  137. 83 CMP #0F5h, R6
  138. 4076: 9036 00F5 CMP.W #0x00f5,R6
  139. 84 JNZ mainloop
  140. 407a: 23DA JNE (mainloop)
  141. 86 MOV.B #1, R8 ;flag that there was a load
  142. is_two:
  143. 407c: 4358 MOV.B #1,R8
  144. 87 JMP mainloop ;load is enabled by value, not edge, so check it again
  145. 407e: 3FD8 JMP (mainloop)
  146. 90 MOV.B &P1IN, R6 ;set the button state to the register
  147. PORT1_ISR:
  148. ..... ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement