Advertisement
Guest User

Untitled

a guest
May 6th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. #include <io430x16x.h>
  2. #include <msp430x16x.h>
  3. rseg code:CODE,2000h
  4.  
  5. extern LCDUpdate, LCDStr,LCDChrXY, DelayN, LCDPixmove
  6. extern LCDUtoLXY, LCDUtoRXY, LCDLabdaXY
  7. public asmmain
  8. ////////////////////////////////////////////////
  9. asmmain:
  10. ; ide írhatod az asm-programot
  11. #define LeftValue &ADC12MEM0
  12. #define RightValue &ADC12MEM1
  13. #define x R10 //megadjuk x értékét
  14. #define y R6 //megadjuk y értékét
  15. #define dx R8 //megadjuk dx értékét
  16. #define dy R9 //megadjuk dy értékét
  17. clr.w x //lenullázzuk x értékét
  18. clr.w y //lenullázzuk y értékét
  19. mov.w #1,dx //adatmozgatás #1-ből dx-be
  20. mov.w #1,dy //adatmozgatás #1-ből dy-ba
  21. Ciklus: //labdamozgatás
  22. mov.w y,R11 //adatmozgatás
  23. add.w dy,R11 //R11=dy+R11
  24.  
  25. cmp.w #40,R11 //ha nagyobb mint #40 akkor meghívja Cimke001-et
  26. jge Cimke001
  27. cmp.w #0,R11 //ha kisebb,mint #0 akkor meghívja Cimke002-t
  28. jge Cimke002
  29. Cimke001:
  30. xor #0xffff,dy //visszapattanás (ha eléri a szélélt megfordul)
  31. inc dy
  32. Cimke002:
  33. add.w dy,y //dy=dy+y
  34. mov.w x,R11 //adatmozgatás x-ből R11-be
  35. add.w dx,R11 //adatmozgatás dx-ből R11-be
  36. cmp.w #77,R11
  37. jge Cimke003
  38. cmp.w #0,R11
  39. jge Cimke004
  40. Cimke003:
  41. xor #0xffff,dx
  42. inc dx
  43. Cimke004:
  44. add.w dx,x //dx=dx+x
  45. mov.b y,R13 //adatmozgatás y-ból R13-ba
  46. mov.b x,R12 //adatmozgatás x-ből R12-be
  47. call #LCDLabdaXY
  48. mov.b x,R12 //adatmozgatás x-ből R12-be
  49.  
  50.  
  51. call #SetupADC12
  52. mov.w LeftValue,R12
  53. mov.w #0,R13 //a bal ütő mozgatása
  54. mov.w #102,R14 //a bal ütő mozgatása
  55. call #divide //a bal ütő mozgatása
  56. call #LCDUtoLXY //a bal ütő mozgatása
  57.  
  58.  
  59. call #SetupADC12
  60. mov.w RightValue,R12
  61. mov.w #0,R13 //adatmozgatás #0-ból R13-ba
  62. mov.w #102,R14 //adatmozgatás #20-ból R14-ba
  63. call #divide
  64. call #LCDUtoRXY
  65.  
  66.  
  67. call #LCDUpdate
  68. jmp Ciklus
  69. ;*********************************************
  70.  
  71. ;ADC12 Inicializálás
  72.  
  73. SetupADC12 mov #SHT0_8+MSC+ADC12ON,&ADC12CTL0
  74. ; Turn on ADC12, use int. osc.
  75. ; extend sampling time so won't
  76. ; get overflow
  77. ; Set MSC so conversions triggered
  78. ; automatically
  79. mov #SHP+CONSEQ_3,&ADC12CTL1
  80. ; Use sampling timer, set mode
  81. mov #BIT3,&ADC12IE ; Enable ADC12IFG.3 for ADC12MEM3
  82. mov.b #INCH_0,ADC12MCTL0 ; A0 goes to MEM0
  83. mov.b #INCH_1,ADC12MCTL1 ; A1 goes to MEM1
  84. mov.b #INCH_2,ADC12MCTL2 ; A2 goes to MEM2
  85. mov.b #EOS+INCH_3,ADC12MCTL3 ; A3 goes to MEM3, end of sequence
  86. ;
  87. clr R5 ; Clear pointer
  88. ;
  89. bis #ENC,&ADC12CTL0 ; Enable conversions
  90. bis #ADC12SC,&ADC12CTL0 ; Start conversions
  91. // bis #CPUOFF+GIE,SR ; Hold in LPM0, Enable interrupts
  92. //ki kell várni a konverzió végét
  93. testIFG bit #BIT0,&ADC12IFG ; konverzió ellenőrzése
  94. jz testIFG ; nemleges válasz esetén újra tesztelés
  95.  
  96. ret ; Need only for debug
  97. ;
  98.  
  99.  
  100.  
  101.  
  102.  
  103. ;ADC Startup
  104.  
  105. StartADC12:
  106. bis #ADC12SC,&ADC12CTL0 ; konverzió kezdete
  107. bit #BIT0,&ADC12IFG ; konverzió ellenőrzése
  108. jz testIFG ; nemleges válasz esetén újra tesztelés
  109. mov &ADC12MEM0, R5 ; a konverzió eredménye az R5-ös regiszterbe
  110. ret
  111. divide:
  112. mov.w R14, R15
  113. mov.w R12, R13
  114. clr.w R14
  115. mov.w #0x1,R12
  116. div_LO: rla.w R13
  117. rlc.w R14
  118. cmp.w R15, R14
  119. jnc div_1
  120. sub.w R15, R14
  121. div_1: rlc.w R12
  122. jnc div_LO
  123. ret
  124.  
  125. multiply:
  126. mov.w R12, &MPY
  127. mov.w R14, &OP2
  128. mov.w &RESLO, R12
  129. mov.w &RESHI, R13
  130. ret
  131.  
  132.  
  133. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement